剑指 Offer 30. 包含min函数的栈

class MinStack {
    private Stack aStack;
    private Stack bStack;

    public MinStack() {
        aStack = new Stack<>();
        bStack = new Stack<>();
    }

    public void push(int x) {
        aStack.push(x);

        if (bStack.empty() || bStack.peek() >= x) {
            bStack.push(x);
        }
    }

    public void pop() {
        if (aStack.pop().equals(bStack.peek())) {
            bStack.pop();
        }
    }

    public int top() {
        return aStack.peek();
    }

    public int min() {
        return bStack.peek();
    }
}
image.png

你可能感兴趣的:(剑指 Offer 30. 包含min函数的栈)