tmp栈顶元素为当前最小值。
class Solution {
public:
void push(int value) {
if(tmp.empty()){
tmp.push(value);
}else if(value < tmp.top()){
tmp.push(value);
}
a.push(value);
}
void pop() {
if(a.empty()){
return;
}
if(a.top() == tmp.top()){
a.pop();
tmp.pop();
}else{
a.pop();
}
}
int top() {
if(!a.empty()){
return a.top();
}
return -1;
}
int min() {
return tmp.top();
}
stack<int> a;
stack<int> tmp;
};