- 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
- 需要额外的最小值栈S,S的值与输入栈一一对应(大小时刻一致),为对应位置的最小值
- C++ 代码
class Solution {
stack<int> s1;
stack<int> s2;
public:
void push(int value) {
if(s1.empty())
{
s1.push(value);
s2.push(value);
}
else
{
s1.push(value);
if(value<s2.top()) s2.push(value);
else s2.push(s2.top());
}
}
void pop() {
s2.pop();
s1.pop();
}
int top() {
return s1.top();
}
int min() {
return s2.top();
}
};
网友评论