CareerCup 3.2
来源:互联网 发布:手机数据彻底清除方法 编辑:程序博客网 时间:2024/04/28 01:06
3.2 How would you design a stack which, in addition to push and pop, also has a functionminwhich returns the minimum element?Push,pop and min should all operate in O(1) time.
Solution 1:
template <typename T>class StackWithMin {private: stack<pair<T, T> > s;public: bool isEmpty() const { return s.empty(); } const T& min() const { if (!s.empty()) { return s.top().second; } throw length_error("Stack is empty."); } void push(const T &value) { T m = value; if (!s.empty()) { m = min(m, s.top().second); } s.push(value, m); } T pop() { if (!s.empty()) { T value = s.top().first; s.pop(); return value; } throw length_error("Stack is empty."); }};Solution 2:
template <typename T>class StackWithMin {private: stack<T> s; stack<T> m;public: bool isEmpty() const { return s.empty(); } const T& min() const { if (!s.empty()) { return m.top(); } throw length_error("Stack is empty."); } void push(const T &value) { if (s.empty()) { s.push(value); m.push(value); } else if (value <= m.top()) { s.push(value); m.push(value); } else { s.push(value); } } T pop() { if (!s.empty()) { T value = s.top(); s.pop(); if (value == m.top()) { m.pop(); } return value; } throw length_error("Stack is empty."); }};
- CareerCup-3.2
- CareerCup 3.2
- CareerCup 1.3
- CareerCup 1.4
- CareerCup 5.7
- CareerCup 14.6
- CareerCup 1.1
- CareerCup 1.2
- CareerCup 1.3
- CareerCup 1.4
- CareerCup 1.5
- CareerCup 1.6
- CareerCup 1.7
- CareerCup 1.8
- CareerCup 2.1
- CareerCup 2.2
- CareerCup 2.3
- CareerCup 2.4
- windows快捷键
- 快速排序 暑假补习之排序算法
- 基本黑客命令
- phonegap2.8.1新建andorid工程
- 第一php程序
- CareerCup 3.2
- 如何恢复/修复MSSQL数据库的MDF文件
- OCJP之Console
- 35+个实用jQuery菜单插件
- Cocos2d-x 内存管理浅说
- 第三次实验任务
- Meta-Object系统(二)
- 第八次上机任务
- 第九次试验任务