leetcode[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.
class MinStack {

private:

    stack<int> sta;

    stack<int> minsta;

public:

    void push(int x) {

        sta.push(x);

        if(minsta.empty()||(!minsta.empty()&&x<=minsta.top()))

        minsta.push(x);

    }



    void pop() {

        if(sta.empty())return;

        if(sta.top()==minsta.top())minsta.pop();

        sta.pop();

    }



    int top() {

        if(sta.empty())return INT_MAX;

        return sta.top();

    }



    int getMin() {

        if(minsta.empty())return INT_MAX;

        return minsta.top();

    }

};

 

你可能感兴趣的:(LeetCode)