import java.util.*; import java.util.Stack; public class Solution { //用于栈的push和pop Stack<Integer> s1=new Stack<Integer>(); //用于存储最小的min Stack<Integer> s2=new Stack<Integer>(); public void push(int node) { s1.push(node); //空或者新元素较小时入栈 if(s2.isEmpty()||s2.peek()>node) s2.push(node); else //重复加入栈顶 保持每次的最小元素 s2.push(s2.peek()); } public void pop() { s1.pop(); s2.pop(); } public int top() { return s1.peek(); } public int min() { return s2.peek(); } }