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();
 */
相关推荐
考研保研资料分享39 分钟前
通信工程保研经验合辑:北航、北理工申请与夏令营、预推免面试(2025)
面试·职场和发展
熊猫钓鱼>_>1 小时前
大学图论第 6 讲:网络流与二分图匹配——对偶性让瓶颈自己现形
开发语言·算法·面试·职场和发展·图论·校招·面经
杨逢昌工厂6S管理1 小时前
116——杨逢昌:归位三定闭环法的旺季轻量化执行方案与工具清单
经验分享·笔记·职场和发展·学习方法
xuxigifxfh2 小时前
面试记录2026
java·mysql·面试·职场和发展
丑陋小蚊子2 小时前
校招没有实习,社团活动和课程项目先写哪个?
面试·求职招聘·大学生·简历·简历下载
aqiu1111112 小时前
蓝桥杯省一学习计划:每天 2 小时,12 周高效备赛
学习·职场和发展·蓝桥杯
Rain的Java大神之路3 小时前
Java PDF导出,90%的人选错库!11个生产坑+选型+代码,一次讲透
java·后端·面试
怕浪猫4 小时前
AI Agent 的安全怎么保障?面试最后一关的终极问题
算法·面试·github
Interview Aid11214 小时前
SoFi 面试流程全解析:技术面试、OA 与备考指南
面试·职场和发展
YangYang9YangYan16 小时前
2027数学与应用数学转产品经理:面试解释与项目准备
面试·职场和发展·产品经理