class MinStack {
public:
/** initialize your data structure here. */
MinStack() {
}
stack<int> s1, s2;
void push(int x) {
s1.push(x);
//s2不为空
if(s2.empty() != 1){
//取栈顶元素
int min = s2.top();
//如果栈顶元素小于等于x
if(x <= min){
s2.push(x);
}
}else{
s2.push(x);
}
}
void pop() {
int top = s1.top();
int min = s2.top();
if(top == min){
s2.pop();
}
s1.pop();
}
int top() {
return s1.top();
}
int getMin() {
return s2.top();
}
};
最小栈
最新推荐文章于 2023-11-25 12:53:48 发布