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