lintcode-带最小值操作的栈-12

来源:互联网 发布:c语言接口的定义 编辑:程序博客网 时间:2024/06/15 20:51

实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。

你实现的栈将支持pushpopmin 操作,所有操作要求都在O(1)时间内完成。

样例

如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回1,2,1

注意 如果堆栈中没有数字则不能进行min方法的调用

class MinStack {public:        stack<int> sdata;    stack<int> smin;        MinStack() {        // do initialization if necessary    }    void push(int number) {        if(smin.empty()||number<=smin.top())            smin.push(number);        sdata.push(number);    }    int pop() {        int ret=sdata.top();        sdata.pop();        if(ret==smin.top())            smin.pop();                return ret;    }    int min() {        return smin.top();    }};


0 0