【剑指**】30.包含min函数的栈
2018-03-06 15:16
225 查看
30.包含min函数的栈
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
思路分析
思路参考书上。有STL,所以偷懒了,直接调用一下,这样题目就变得简单了
但是有一点要注意, STL 里的 stack。在pop 和 top 时,要记得检查是否为空。否则会出错。
当时在写的时候,自以为 STL 很完善了,判空这种问题肯定会做好了,但是结果就崩溃了。 所以以后当不确定自己调用的函数是否有 check 的时候,自己做一下了,重复检查一下总比崩溃了强,当然这种行为仅适合面试哈
代码
class Solution { private: std::stack<int> data_sk; std::stack<int> help_sk; public: void push(int value) { int min_data = 0; if (help_sk.empty() || (!data_sk.empty() && data_sk.top() > value)) { min_data = value; } else { min_data = data_sk.top(); } data_sk.push(value); help_sk.push(min_data); } void pop() { if (!data_sk.empty() && !help_sk.empty()) { data_sk.pop(); help_sk.pop(); } } int top() { if (!data_sk.empty()) return data_sk.top(); else { return -1; } } int min() { if (!help_sk.empty()) return help_sk.top(); else { return -1; } } };
相关文章推荐
- 剑指Offer(30)包含min函数的栈
- 剑指offer--面试题30:包含min函数的栈
- 【剑指offer】面试题30:包含min函数的栈
- 剑指 offer set 9 包含min函数的栈
- 剑指offer 包含min函数的栈
- 剑指offer_面试题21_包含min函数的栈
- 【剑指offer】面试题 30:包含 min 函数的栈
- 【剑指Offer】面试题21:包含min函数的栈
- 【剑指offer】数据结构 ——包含min函数的栈(C++)
- 剑指offer - 包含min函数的栈
- 剑指offer-包含min函数的栈
- 剑指offer第20题(包含min函数的栈)
- 剑指Offer---面试题21:包含min函数的栈
- (C++)剑指offer-20:包含min函数的栈(举例让抽象具体化)
- 剑指offer——面试题21:包含min函数的栈(泛型编程,一个巧妙的思维)
- 重拾算法之剑指Offier——包含min函数的栈
- 【剑指Offer面试编程题】题目1522:包含min函数的栈--九度OJ
- 【剑指offer】4.3举例让抽象问题具体化——面试题21:包含min函数的栈
- 剑指offer-算法题练习:part22 包含min函数的栈
- 剑指offer 21 包含min函数的栈