题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
解法:
class Solution {
public:stack<int> s;stack<int> s_min;void push(int value) {if(s_min.empty() || value <= s_min.top()) s_min.push(value);s.push(value);}void pop() {if(s.top() == s_min.top()) s_min.pop();s.pop();}int top() {return s.top();}int min() {return s_min.top();}
};