剑指 Offer 30. 包含min函数的栈
https://leetcode.cn/problems/bao-han-minhan-shu-de-zhan-lcof/description/
class MinStack { // B用来存放每次输入时小于之前最小值的元素,当需要取最小值时,直接B.peek()即可 // peek() 函数返回栈顶的元素,但不弹出该栈顶元素 Stack<Integer> A,B; public MinStack() { A = new Stack<>(); B = new Stack<>(); } public void push(int x) { A.add(x); // 等号防止重复最小值被弹出 if(B.isEmpty() || x <= B.peek()) B.add(x); } public void pop() { if(A.pop().equals(B.peek())) B.pop(); } public int top() { return A.peek(); } public int min() { return B.peek(); } }