思路:双栈
- 除了本身存储数据的栈之外,还需要一个栈进行同步最小数据存储
代码
class MinStack {
private:
stack<int> s;
stack<int> min_v;
public:
/** initialize your data structure here. */
MinStack() {
}
void push(int val) {
s.push(val);
if(min_v.empty())
min_v.push(val);
else
min_v.push(min(min_v.top(),val));
}
void pop() {
s.pop();
min_v.pop();
}
int top() {
return s.top();
}
int getMin() {
return min_v.top();
}
};