leetCode(45):Min Stack

来源:互联网 发布:软件销售的税率 编辑:程序博客网 时间:2024/05/17 09:36

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 {public:    void push(int x) {        data.push(x);//数据栈正常压入        if(minData.empty())        {//最小栈数据栈压入时要进行判断,如果被压入的数据不影响最小值,则直接再压入
//最小栈栈顶元素,否则压入x            minData.push(x);        }        else        {            if(x<minData.top())            {                minData.push(x);            }            else            {                minData.push(minData.top());            }        }    }    void pop() {//弹出时,两个栈都需要弹出        data.pop();        minData.pop();    }    int top() {        return data.top();    }    int getMin() {        return minData.top();    }    private:    stack<int> data;    stack<int> minData;};



0 0
原创粉丝点击