您的位置:首页 > Web前端

《剑指offer》包含min函数的栈

2015-09-11 15:42 288 查看



【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】





题目链接:http://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49?rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

思路

因为在我们每次插入和删除操作之后,整个栈内的元素最小值都有可能随之变化,我们必须要开一个辅助栈来记录栈内的最小值。

class Solution
{
	public:
		void push(int val)
		{
			S.push(val);
			if(S_min.empty() || S_min.top()>val)
				S_min.push(val);
		}
		void pop()
		{
			if(S.top() == S_min.top())
				S_min.pop();
			S.pop();
		}
		int top()
		{
			return S.top();
		}
		int min()
		{
			return S_min.top();
		}
	private:
		stack<int> S;
		stack<int> S_min;
};


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: