package normal; import java.util.Stack; /** * @program JavaBooks * @description: 155.最小栈 * @author: mf * @create: 2019/11/07 12:01 */ /* 题目:https://leetcode-cn.com/problems/min-stack/ 类型:栈 难度:easy */ /* MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); --> 返回 -3. minStack.pop(); minStack.top(); --> 返回 0. minStack.getMin(); --> 返回 -2. */ public class MinStack { private int min = Integer.MAX_VALUE; private Stack stack; public static void main(String[] args) { MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); System.out.println(minStack.getMin()); minStack.pop(); System.out.println(minStack.getMin()); } public MinStack() { stack = new Stack<>(); } public void push(int x) { if (min >= x) { stack.push(min); min = x; } stack.push(x); } public void pop() { if (stack.pop() == min) { min = stack.pop(); } } public int top() { return stack.peek(); } public int getMin() { return min; } }