Min Stack

class MinStack {
    Stack<Integer> stack;
    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.empty()) {
      		minStack.push(x);
      	} else {
      		minStack.push(Math.min(minStack.peek(), x));
      	}
    }
    
    public void pop() {
     stack.pop();
	   minStack.pop();
    }
    
    public int top() {
     	return stack.peek();
     }
    
    public int getMin() {
    	return minStack.peek();
    }
}

最后更新于

这有帮助吗?