本文共 1623 字,大约阅读时间需要 5 分钟。
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
push(x) – Push element x onto stack.
pop() – Removes the element on top of the stack. top() – Get the top element. getMin() – Retrieve the minimum element in the stack. Example:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.getMin(); --> Returns -3.minStack.pop();minStack.top(); --> Returns 0.minStack.getMin(); --> Returns -2.
public class _155MinStack2 { private Stackstack; private Stack minStack; /** initialize your data structure here. */ public _155MinStack2() { stack = new Stack (); minStack = new Stack (); } public void push(int x) { stack.push(x); if (minStack.isEmpty()) { minStack.push(x); } else { if (minStack.peek() >= x) minStack.push(x); } } public void pop() { if (!stack.isEmpty()) { //判断对象相等用equals if (stack.peek().equals(minStack.peek())) { minStack.pop(); } stack.pop(); } } public int top() { if (!stack.isEmpty()) return stack.peek(); return 0; } public int getMin() { if (!minStack.isEmpty()) return minStack.peek(); return 0; } /** * 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(); */
转载地址:http://bfhtx.baihongyu.com/