剑指offer 包含min函数的栈

剑指offer 包含min函数的栈

  • 题目描述

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

  • 解法实现

用另一个栈来记录min值。

class Solution {
public:
    stack<int> s1, s2;

	void push(int value) {
		s1.push(value);
		if (s2.empty())
			s2.push(value);
		else{
			if (value < s2.top()){
				s2.push(value);
			}
			else{
				s2.push(s2.top());
			}
		}
	}
	void pop() {
		s1.pop();
		s2.pop();
	}
	int top() {
		return s1.top();
	}
	int min() {
		return s2.top();
	}
};
弹钢琴的猫 /
Published under (CC) BY-NC-SA in categories 算法  tagged with 剑指offer  stack