剑指offer-包含min函数的栈
2016-10-30 23:57
302 查看
一、问题描述
二、思路
两个栈,一个当前栈data,一个辅助栈m_min,辅助栈用来存储当前的最小值,如果出栈,辅助栈也出栈,栈顶元素始终是当前的最小值。
在入栈时,如果辅助栈为空或者当前值小于辅助栈栈顶元素,则将当前值加入辅助栈;否则将辅助栈的栈顶元素加入辅助栈,表明此次有大于min栈顶数字入栈。以此保证在其中一个最小值出栈时,辅助栈也出栈时,辅助栈还能有一个最小值。
三、代码
二、思路
两个栈,一个当前栈data,一个辅助栈m_min,辅助栈用来存储当前的最小值,如果出栈,辅助栈也出栈,栈顶元素始终是当前的最小值。
在入栈时,如果辅助栈为空或者当前值小于辅助栈栈顶元素,则将当前值加入辅助栈;否则将辅助栈的栈顶元素加入辅助栈,表明此次有大于min栈顶数字入栈。以此保证在其中一个最小值出栈时,辅助栈也出栈时,辅助栈还能有一个最小值。
三、代码
class Solution { public: stack<int> data; stack<int> m_min; void push(int value) { data.push(value); if(m_min.size() == 0 || value < m_min.top()) m_min.push(value); else m_min.push(m_min.top()); } void pop() { data.pop(); m_min.pop(); } int top() { return data.top(); } int min() { return m_min.top(); } };
相关文章推荐
- 剑指Offer:包含min函数的栈
- 剑指Offer - 九度1522 - 包含min函数的栈
- 牛客网剑指offer-包含min函数的栈
- 剑指offer之面试题21:包含min函数的栈
- 剑指offer——包含min函数的栈
- 【剑指offer】包含min函数的栈
- 【剑指offer】之包含min函数的栈
- 剑指Offer-包含min函数的栈
- 剑指Offer:包含min函数的栈(JAVA)
- 剑指offer-算法题练习:part22 包含min函数的栈
- 剑指Offer(30)包含min函数的栈
- 【剑指offer】20包含min函数的栈
- 剑指offer——包含min函数的栈
- 【剑指Offer面试编程题】题目1522:包含min函数的栈--九度OJ
- 剑指Offer之包含min函数的栈
- 剑指offer(十七)之包含min函数的栈
- 剑指Offer_20_包含min函数的栈
- 包含min函数的栈 (剑指Offer 第 19 题)
- 剑指offer面试题21:包含min函数的栈
- 【剑指offer】4.3举例让抽象问题具体化——面试题21:包含min函数的栈