初始化最小辅助栈时放入一个INT_MAX。
class MinStack {
private:
stack<int> stk;
stack<int> monoStk;
public:
MinStack() {
monoStk.push(INT_MAX); //单调栈中放一个最大数垫底
}
void push(int x) {
stk.push(x);
int t = monoStk.top() > x ? x : monoStk.top();
monoStk.push(t);
}
void pop() {
monoStk.pop();
stk.pop();
}
int top() {
return stk.top();
}
int min() {
return monoStk.top();
}
};