题目

min-stack


2. 算法

* 直接模拟


3. 代码

class MinStack {
public:
    void push(int x) {
        _stack.push(x);
        if (_minStack.empty() || x <= _minStack.top()) _minStack.push(x);
    }

    void pop() {
        if (!_stack.empty()) {
            if (_stack.top() == _minStack.top()) _minStack.pop();
            _stack.pop();
        }
    }

    int top() {
        if (!_stack.empty()) return _stack.top();
        return 0;
    }

    int getMin() {
        if (!_minStack.empty()) return _minStack.top();
        return 0;
    }

private:
    stack<int> _stack;
    stack<int> _minStack;
};

results matching ""

    No results matching ""