剑指off-O(1)得到栈的最小元素
2015-07-19 15:50
176 查看
题目:实现一个栈,要求可以得到min,pop
push min 复杂度O(1) min是得到最小元素,不是得到最小并弹出来
分析:用一个辅助栈,每次push的时候都是压入最小的元素,同时弹出
偷懒了,用STL的栈简单写一下
push min 复杂度O(1) min是得到最小元素,不是得到最小并弹出来
分析:用一个辅助栈,每次push的时候都是压入最小的元素,同时弹出
偷懒了,用STL的栈简单写一下
<span style="font-size:14px;">void push(stack<int > &stack1,stack<int > &stack2,int n) { if (stack1.empty()) { stack1.push(n); stack2.push(n); } else { stack1.push(n); int temp= stack2.top(); if (n<temp) { stack2.push(n); } else stack2.push(temp); } } void pop(stack<int > &stack1,stack<int > &stack2) { if (!stack1.empty()) { printf("the stack is empty"); return ; } stack1.pop(); stack2.pop(); } int min(stack<int > &stack2) { return stack2.top(); }</span>
相关文章推荐
- 32位和64位系统区别及int字节数
- 创建精灵(基础总结)【7个属性】
- LINQ简介
- srm 541
- EM算法
- 灰度化
- SQL脚本积累之一-----UNION的使用示例
- [LeetCode]239.Sliding Window Maximum
- Linux strace命令(转)
- Poj2033
- 关于设计模式的思考
- PAT (Advanced Level) 1004. Counting Leaves (30) 层序遍历,两个queue辅助
- 如何查看/修改Linux时区和时间
- android 仿QQ界面
- C++ STL序列式容器优缺点记录
- Mysql数据库分布式事务XA详解
- C/C++位域知识小结
- 红黑树
- [整理]关于分布式系统的简介
- 浅谈代码覆盖