让都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(); } };