class Solution {
public:
/*
最小栈:
sta1,sta2
push:正常向sta1中push,如果数小于min的栈顶,sta2push val
pop:获取sta1的top,如果等于sta2,sta1和sta2一起pop,否则
top:获取sta1,
min:获取sta2
*/
stack<int> sta1, sta2;
void push(int value) {
sta1.push(value);
if (sta2.empty() || sta2.top() >= value) {
sta2.push(value);
}
}
void pop() {
int top = sta1.top();
sta1.pop();
if (top == sta2.top()) {
sta2.pop();
}
}
int top() {
return sta1.top();
}
int min() {
return sta2.top();
}
};