方法一:(维护一个最小值的栈,每次入栈与进栈都要对其进行维护)
class MinStack {
public:
MinStack() {
sz=0;
}
void push(int x) {
if(sz==0){
m=x;
mins.push(x);
}
else if(x<=m){
m=x;
mins.push(x);
}
s.push(x);
sz++;
}
void pop() {
if(s.top()==m){
mins.pop();
if(!mins.empty())
m=mins.top();
}
sz--;
s.pop();
}
int top() {
return s.top();
}
int getMin() {
return m;
}
private:
stack<int>mins;
stack<int>s;
int sz;
int m;
};
155 Min Stack
最新推荐文章于 2019-05-07 15:25:23 发布