设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
借鉴题解
class MinStack {
public:
stack<int> m;
stack<int> min;
MinStack() {
}
void push(int x) {
m.push(x);
if(min.empty()||x<=min.top())
min.push(x);
}
void pop() {
if(m.top()==min.top())
min.pop();
m.pop();
}
int top() {
return m.top();
}
int getMin() {
return min.top();
}
};