带最小值操作的栈
来源:互联网 发布:广联达软件官方售价 编辑:程序博客网 时间:2024/05/19 13:09
问题:
实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。
你实现的栈将支持push,pop 和min 操作,所有操作要求都在O(1)时间内完成。
解法:
该题的解法是设置一个用于存储当前最小元素的辅助栈。
class MinStack {public: MinStack() { // do initialization if necessary while(!minnum.empty()){ minnum.pop(); } while(!data.empty()){ data.pop(); } } void push(int number) { // write your code here if(data.empty()){ data.push(number); minnum.push(number); }else{ int tmp = minnum.top(); data.push(number); if(number < tmp){ minnum.push(number); }else{ minnum.push(tmp); } } } int pop() { // write your code here int tmp = data.top(); data.pop(); minnum.pop(); return tmp; } int min() { // write your code here int tmp = minnum.top(); return tmp; } private://存储当前最小元素和所有入栈元素的栈 stack<int> minnum; stack<int> data;};
0 0
- 带最小值操作的栈
- 带最小值操作的栈
- 带最小值操作的栈
- 带最小值操作的栈
- 带最小值操作的栈
- 带最小值操作的栈
- 带最小值操作的栈
- LintCode 带最小值操作的栈
- lintcode-带最小值操作的栈-12
- 题目:带最小值操作的栈
- LintCode:带最小值操作的栈
- lintcode,带最小值操作的栈
- lintcode,带最小值操作的栈
- LintCode 12 带最小值操作的栈
- 实现带最小值操作的栈
- lintcode -- 带最小值操作的栈
- [LintCode]12.带最小值操作的栈
- LintCode-----12.带最小值操作的栈
- hdu 4279 Number 2012天津网络赛 数论 分析
- 2015版互联网人跳槽指南
- Android ActionBar常用功能代码整理
- nucleo F072开发板 SPI tft 屏显
- java 几种简单排序实现代码
- 带最小值操作的栈
- mysql group by 用法解析(详细)
- Java设计模式-装饰者模式
- PHP编码的几个最佳实践
- javascript深入理解js闭包
- [Unity基础]将sprite导出为texture
- 大脑如同编程,bug如何修复?
- Android studio 导出jar包并混淆和aar
- 友善之臂smart210启动wifi热点