day32(12.12)——leetcode面试经典150
2026/5/16 11:40:16 网站建设 项目流程

155. 最小栈

155. 最小栈

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

题目:

题解:

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(); */

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询