class Solution {
public:
void push(int value) {
data.push(value);
if(Min.empty()){
Min.push(value);
}
if(Min.top()> value){
Min.push(value);
}
}
void pop() {
if(data.top() == Min.top()){
Min.pop();
}
data.pop();
}
int top() {
return data.top();
}
int min() {
return Min.top();
}
private:
stack<int> data;
stack<int> Min;
};
遇到的问题:
如果这么写的话,首先data先弹出了,下面的if只能讲min的top与data的top的下一个比较了
void pop() {
data.pop();
if(data.top() == Min.top()){
Min.pop();
}
}