- 题目描述
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) – 将元素 x 推入栈中。
pop() – 删除栈顶的元素。
top() – 获取栈顶元素。
getMin() – 检索栈中的最小元素。
双栈解决
- c++代码
class MinStack {
public:
stack<int> st1,st2;
MinStack() {
}
void push(int x) {
st1.push(x);st2.push(st2.empty()? x:min(st2.top(),x));
}
void pop() {
st1.pop();st2.pop();
}
int top() {
return st1.top();
}
int getMin() {
return st2.top();
}
};
题目链接
https://leetcode-cn.com/problems/min-stack/