让都O(1)就得想办法存最小值,这个最小值还要能够随着栈操作相应的变化,所以采用一个辅助栈用来存最小值
class Solution {
public:
stack<int> stack,mstack;
void push(int value) {
stack.push(value);
if(mstack.empty()){
mstack.push(value);
}
else mstack.push(value>mstack.top()?mstack.top():value);
}
void pop() {
stack.pop();
mstack.pop();
}
int top() {
return stack.top();
}
int min() {
return mstack.top();
}
};
京公网安备 11010502036488号