leetcode 155. Min Stack

来源:互联网 发布:安卓大尺度直播软件 编辑:程序博客网 时间:2024/06/05 18:14

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.
class MinStack {public:    /** initialize your data structure here. */    MinStack(){}    ~MinStack(){}        void push(int x)     {        element.push(x);        if(min_element.empty() || (x <= min_element.top()) )            min_element.push(x);    }        void pop()     {           if(!element.empty())        {            if(element.top() == min_element.top())                min_element.pop();            element.pop();        }    }        int top()     {        if(!element.empty())            return element.top();        }        int getMin()     {        if (!min_element.empty())            return min_element.top();        }    private:    stack<int> element;    stack<int> min_element;};/** * 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(); */