day32(12.12)——leetcode面试经典150

155. 最小栈

155. 最小栈

这道题的重点是在获取更新最小值的时候,一定要加上<=,因为栈中可能为空;同时比较大小的时候要用equals来比较数值

题目:

题解:

java 复制代码
class MinStack {
    //全局对象stack和用来存储最小的元素
    private Stack<Integer> stack;
    private Stack<Integer> min_stack;

    public MinStack() {
        stack = new Stack<>();
        min_stack = new Stack<>();
    }
    
    public void push(int val) {
        stack.push(val);
        //这里要加上=,会导致min_stack为空
        if(min_stack.isEmpty() || val <= min_stack.peek()){
            min_stack.push(val);
        }
    }
    
    public void pop() {
        //如果最小的元素是当前要移除的元素
        //.equals() 比较的是数值内容
        if(stack.pop().equals(min_stack.peek())) {
            min_stack.pop();
        }
    }
    
    public int top() {
        return stack.peek();
    }
    
    public int getMin() {
        return min_stack.peek();
    }
}

/**
 * Your MinStack object will be instantiated and called as such:
 * MinStack obj = new MinStack();
 * obj.push(val);
 * obj.pop();
 * int param_3 = obj.top();
 * int param_4 = obj.getMin();
 */
相关推荐
掘金安东尼1 天前
React 性能优化完全指南 2026
前端·javascript·面试
掘金安东尼1 天前
让 JavaScript 更容易「善后」的新能力
前端·javascript·面试
掘金安东尼1 天前
用 HTMX 为 React Data Grid 加速实时更新
前端·javascript·面试
UrbanJazzerati2 天前
非常友好的Vue 3 生命周期详解
前端·面试
想用offer打牌2 天前
高并发下如何保证接口的幂等性
后端·面试·状态机
牛奶2 天前
Vue 基础理论 & API 使用
前端·vue.js·面试
牛奶2 天前
Vue 底层原理 & 新特性
前端·vue.js·面试
NAGNIP2 天前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
青青家的小灰灰3 天前
深入理解事件循环:异步编程的基石
前端·javascript·面试
程序员清风3 天前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试