import java.util.Stack; class MinStack { private Stack<Integer> stack; private Stack<Integer> minStack; /** initialize your data structure here. */ public MinStack() { stack = new Stack<>(); minStack = new Stack<>(); } public void push(int x) { stack.push(x); if (minStack.isEmpty()) { minStack.push(x); } else { int top = minStack.peek(); if (x <= top) { minStack.push(x); } } } public void pop() { int top = stack.pop(); int min = minStack.peek(); if (min == top) { minStack.pop(); } } public int top() { return stack.peek(); } public int getMin() { return minStack.peek(); } } /** * Your MinStack object will be instantiated and called as such: * MinStack obj = new MinStack(); * obj.push(x); * obj.pop(); * int param_3 = obj.top(); * int param_4 = obj.getMin(); */
LeetCode - 155. 最小栈
猜你喜欢
转载自blog.51cto.com/tianyiya/2174668
今日推荐
周排行