155. Min Stack

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.


实现一个可以保存最小值的栈;

单独建一个变量min

入栈时不直接如x 而是比较与min的关系  min始终是当前的最小值



public class MinStack {
    Stack stack;
    long min=Integer.MIN_VALUE;
    /** initialize your data structure here. */
    public MinStack() {
       stack=new Stack<>();
    }
    
    public void push(int x) {
        if(stack.isEmpty()){
            stack.push(0L);
            min=x;
        }
        else{
            stack.push(x-min);
            if(x


你可能感兴趣的:(155. Min Stack)