单调栈
import java.util.Stack; public class Solution { // 最小 栈, 两个栈 Stack<Integer> st = new Stack<>(); Stack<Integer> smin = new Stack<>(); public void push(int node) { st.push(node); if (smin.isEmpty()) smin.push(Integer.MAX_VALUE); smin.push(Math.min(smin.peek(), node)); } public void pop() { st.pop(); smin.pop(); } public int top() { return st.peek(); } public int min() { return smin.peek(); } }