import java.util.*;
import java.util.Stack;
public class Solution {
Stack<Integer> stack = new Stack<>();
// 栈用于记录较小的元素
Stack<Integer> stack1 = new Stack<>();
public void push(int node) {
stack.push(node);
// 每次pyush时判断是不是更小的元素,是的话就加入栈2
if(stack1.isEmpty()||stack1.peek()>node){
stack1.push(node);
}else{
// 不小于的话就重复加入栈顶元素,保持与栈1存储元素数量相同
// 并且栈顶元素最小
stack1.push(stack1.peek());
}
}
public void pop() {
//因为弹出时可能将最小的元素弹出,
// 所以此时也要讲栈2弹出一个元素,
// 与栈1保持同步
stack.pop();
stack1.pop();
}
public int top() {
return stack.peek();
}
public int min() {
return stack1.peek();
}
}