在实现栈的基本功能的基础上,在实现返回栈中最小元素的操作
实现一个特殊的栈,在实现栈的基本功能的基础上,在实现返回栈中最小元素的操作
要求
- pop,push,getMin操作的时间复杂度为\(O(1)\)。
- 设计的栈类型可以利用现成的栈结构
使用两个栈来实现,一个栈正常的放元素,另一个栈同时压入此时的最小值。
class SpStack{
private Stack<Integer> stack = new Stack<>();
private Stack<Integer> minStack = new Stack<>();
private int min = Integer.MAX_VALUE;
public void push(int number){
min = Math.min(min,number);
minStack.push(min);
stack.push(number);
}
public int pop(){
minStack.pop();
return stack.pop();
}
public int getMin(){
return minStack.peek();
}
}