import java.util.Stack;
public class Solution {
//创建俩个辅助栈,stack1用来存放压入的元素,stack2用来保存较小元素
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
//
public void push(int node) {
//把节点直接压入stack1;
stack1.push(node);
//如果stack2为空,或者node小于stack2的顶端元素
if(stack2.isEmpty()||node<stack2.peek()){
//把node值压入stack2
stack2.push(node);
}else{
//否则,将stack2的顶端元素重复存一下;保证stack2的顶端元素不增
stack2.push(stack2.peek());
}
}
//出栈
public void pop() {
stack2.pop();
}
//取顶栈的元素
public int top() {
return stack1.peek();
}
//stack2的顶端元素就是最小的
public int min() {
return stack2.peek();
}
}