注意在加入的时候,比较当前最小值和参数的大小。
class MinStack {
Stack<Integer> stack;
Stack<Integer> min;
/** initialize your data structure here. */
public MinStack() {
stack = new Stack();
min = new Stack();
}
public void push(int x) {
if(stack.isEmpty()){
stack.add(x);
min.add(x);
}
else{
min.add(Math.min(x, min.peek()));
stack.add(x);
}
}
public void pop() {
if(stack.isEmpty()) return ;
stack.pop();
min.pop();
}
public int top() {
return stack.peek();
}
public int min() {
return min.peek();
}
}