其他分享
首页 > 其他分享> > 剑指offer 包含min函数的栈

剑指offer 包含min函数的栈

作者:互联网

力扣题目链接

class MinStack {
    //声明两个栈 A为数据栈,B为辅助栈
    Stack<Integer> A,B;
    public MinStack() {
        //初始化栈
        A = new Stack<>();
        B = new Stack<>();
    }
    public void push(int x) {
        A.add(x);
        //保证栈B非严格降序排列,一定要写成小于等于,不然会有B为空栈的现象
        if(B.empty() || x<=B.peek()){
            B.add(x);
        }
    }
    public void pop() {
        //当A的栈顶等于B的栈顶时B才出栈,否则只有A出栈,这样能保证A和B同时出完栈即在找最小值的过程中不会出现B为空栈的情况。
        if(A.pop().equals(B.peek())){
            B.pop();
        }
    }
    public int top() {
        return A.peek();
    }
    public int min() {
        return B.peek();
    }
}

标签:MinStack,函数,offer,int,min,public,new,Stack
来源: https://www.cnblogs.com/jianjiana/p/15860231.html