LintCode(M)带min函数的栈

来源:互联网 发布:数据库系统概念第六版 编辑:程序博客网 时间:2024/06/05 18:00

带最小值操作的栈

描述
笔记
数据
评测
实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。

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

注意事项

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

您在真实的面试中是否遇到过这个题?
样例
如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回 1,2,1

class MinStack {public:    MinStack() {        // do initialization if necessary    }    void push(int number) {        // write your code here        m1.push(number);        if(m2.empty()||number<=m2.top()) //最初m2.empty()写成m1.empty(),结果找了好久的bug...        m2.push(number);         else m2.push(m2.top());     }   int pop() {        // write your code here    if(m1.empty()) return -1;        if(!m1.empty()){          m2.pop();int m=m1.top();m1.pop();            return m;        }        if (m1.empty()) return -1;        int t = m1.top(); m1.pop();        if (!m2.empty() && m2.top() == t) m2.pop();        return t;    }    int min() {        // write your code here        if(!m2.empty())         return m2.top();        return -1;    }    private:    stack<int> m1,m2;};
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 管子断在水管里怎么办 衣服上的织带缩水怎么办 真丝衣服拔缝了怎么办 顾客说衣服太花怎么办 铝和碱反应变黑怎么办 40度高温多肉怎么办 沾到医用蓝药水怎么办? 裤子弄上泡沫胶怎么办 苍蝇纸粘衣服上怎么办 苍蝇胶沾衣服上怎么办 灯带为什么不亮怎么办 苹果6比屏幕变黄怎么办 雷腾键盘锁了怎么办 自吸泵电机不转怎么办 孕38周胎儿偏小怎么办 被火烧黑的铁怎么办 锅被烟熏黑了怎么办 墙壁被烟熏黑了怎么办 壁纸被烟熏黑了怎么办 空调被烟熏黑了怎么办 牙被烟熏黑了怎么办 尖头鞋把尖折了怎么办 腰椎固定手术钢钉断了怎么办 脚被钢钉扎了怎么办 皮帘子有胶了怎么办 12v插口没有电怎么办 吃了一颗聚乙烯醇怎么办 立式注塑机产品粘膜怎么办 被小松鼠咬了怎么办 被宠物松鼠咬了怎么办 手被松鼠咬出血怎么办 银联认证码失败怎么办 国际汇款触发合规查询怎么办 外面的网线断了怎么办 网线被别的车挂断了怎么办 施工挖断军用光缆怎么办 不小心挖断光缆怎么办 家里的光纤断了怎么办 车被树枝刮花了怎么办 货车撞断了树枝怎么办? 把光缆挖断了怎么办