问题描述:
代码:
class MinStack {
public:
stack<int> data;
stack<int> min;
MinStack() {
}
void push(int x) {
data.push(x);
if (min.empty() || min.top() >= x) //总是把最小的元素压到min栈里面
{
min.push(x);
}
else
{
min.push(min.top());
}
}
void pop() {
data.pop();
min.pop();
}
int top() {
return data.top();
}
int getMin() {
return min.top();
}
};