0
点赞
收藏
分享

微信扫一扫

最小栈,力扣

迎月兮 2023-12-03 阅读 45

目录


题目地址:

今天刷最小栈,大家有兴趣可以点上看看题目要求,试着做一下

我们直接看题解吧:

题目:

解题方法:

难度分析:

审题目+事例+提示:

解题分析:

解题思路:

代码实现:

class MinStack {
    Deque<Integer> xStack;   //注意,Deque是一个接口
    Deque<Integer> minStack; //定义双端Deque双端队列作为元素栈与辅助栈

    public MinStack() {
        xStack = new LinkedList<Integer>();      //在构造方法中创建双向链表集合对象
        minStack = new LinkedList<Integer>();   //利用Deque接口其中的一个实现类
        minStack.push(Integer.MAX_VALUE);    //初始化压入一个int整型最大值,MAX_VALUE
    }
    
    public void push(int x) {
        xStack.push(x);
        minStack.push(Math.min(minStack.peek(), x));  //比较当前值与之前最小值
    }
    
    public void pop() {
        xStack.pop();       //同步弹出栈元素
        minStack.pop();
    }
    
    public int top() {
        return xStack.peek();     //返回元素栈顶元素
    }
    
    public int getMin() {
        return minStack.peek();  //返回辅助栈的元素
    }
}

。
代码补充说明:  

 

举报

相关推荐

0 条评论