《剑指Offer》 包含min函数的栈
2017-04-07 16:39
369 查看
题目描述:
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
思路:
设置一个正常的栈s1,push、pop、top操作都和一般的栈一样,再设置一个用来返回最小值的栈mins,定义当栈mins为空时,或者value<=mins.top()时,value也入栈mins。在pop时,如果栈s和栈mins的top相等,则两个同时pop,否则只pop栈s。
代码:
输出结果:运行时间: <1 ms 占用内存:8552K 状态:答案正确
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
思路:
设置一个正常的栈s1,push、pop、top操作都和一般的栈一样,再设置一个用来返回最小值的栈mins,定义当栈mins为空时,或者value<=mins.top()时,value也入栈mins。在pop时,如果栈s和栈mins的top相等,则两个同时pop,否则只pop栈s。
代码:
class Solution { public: void push(int value) { s1.push(value); if(mins.empty()||value<=mins.top()){//定义当栈mins为空时,或者value<=mins.top()时,value也入栈mins mins.push(value); } } void pop() { if(s1.top()==mins.top()){//如果栈s和栈mins的top相等,则两个同时pop,否则只pop栈s mins.pop(); } s1.pop(); } int top() { return s1.top(); } int min() { return mins.top(); } private: stack<int> s1;//正常的栈s1,push、pop、top操作都和一般的栈一样 stack<int> mins;//返回最小值的栈mins };
输出结果:运行时间: <1 ms 占用内存:8552K 状态:答案正确
相关文章推荐
- 剑指offer---包含min函数的栈
- 剑指offer系列源码-包含min函数的栈
- 牛客《剑指Offer》包含min函数的栈
- 剑指offer——面试题21:包含min函数的栈
- 《剑指offer》刷题笔记(举例让抽象具体化):包含min函数的栈
- 包含min函数的栈|剑指offer
- 《剑指offer》包含min函数的栈
- 剑指offer第二十题【包含min函数的栈】c++实现
- 剑指Offer(Java版):包含min函数的栈
- 《剑指offer》包含min函数的栈
- 《剑指offer》:[21]包含min函数的栈
- 剑指offer(17)-包含min函数的栈
- 剑指Offer——(20)包含min函数的栈
- 剑指offer之面试题21:包含min函数的栈
- 剑指offer系列-T21包含min函数的栈
- 剑指Offer面试题21(Java版):包含min函数的栈
- 剑指offer—包含min函数的栈
- 剑指offer-----包含min函数的栈
- 《剑指offer》编程题java实现(二十):包含min函数的栈
- 剑指Offer: (Java实现) 包含min函数的栈