Stack.peek()只取值 不会删掉值 。
class MinStack {
private Stack<Integer> dataStack; // 数据栈
private Stack<Integer> minStack; // 辅助栈,记录每次有元素进栈后或者出栈后,元素的最小值
/** initialize your data structure here. */
public MinStack() {
dataStack= new Stack <>();
minStack= new Stack <>();
}
public void push(int x) {
if(minStack.isEmpty()||minStack.peek()>x){
minStack.push(x);
}else{
minStack.push(minStack.peek());
}
dataStack.push(x);
}
public void pop() {
dataStack.pop();
minStack.pop();
}
public int top() {
return dataStack.peek();
}
public int min() {
return minStack.peek();
}
}