Leetcode155. 最小栈(辅助栈)

Posted !0 !

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode155. 最小栈(辅助栈)相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/min-stack/

解题思路

利用辅助栈存储最小值。我们可以发现,如果当前要加入的元素小于等于最小栈的元素,就直接加入最小栈。出栈时,如果当前出栈元素等于最小栈的栈顶,就直接出栈。

代码

class MinStack {
    Deque<Integer> a;
    Deque<Integer> b;

    public MinStack() {
        a = new LinkedList<>();
        b = new LinkedList<>();
    }
    
    public void push(int val) {
        a.push(val);
        if(b.isEmpty() || (!b.isEmpty() && b.peek() >= val)) 
            b.push(val);
    }
    
    public void pop() {
        int x = a.pop();
        if(x == b.peek()) 
            b.pop();   
    }
    
    public int top() {
        return a.peek();
    }
    
    public int getMin() {
        return b.peek();
    }
}

以上是关于Leetcode155. 最小栈(辅助栈)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 155. 最小栈 ——O额外空间

LeetCode-155-最小栈

LeetCode第155题—最小栈——Python实现

LeetCode第155题—最小栈——Python实现

[JavaScript 刷题] 栈 - 最小栈, leetcode 155

[JavaScript 刷题] 栈 - 最小栈, leetcode 155