leetcode155.最小栈
2026/5/7 4:55:01 网站建设 项目流程

设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。

实现MinStack类:

  • MinStack()初始化堆栈对象。
  • void push(int val)将元素val推入堆栈。
  • void pop()删除堆栈顶部的元素。
  • int top()获取堆栈顶部的元素。
  • int getMin()获取堆栈中的最小元素。

示例 1:

输入:
["MinStack","push","push","push","getMin","pop","top","getMin"] [[],[-2],[0],[-3],[],[],[],[]]

输出:[null,null,null,null,-3,null,0,-2]

解释:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin(); --> 返回 -3.
minStack.pop();
minStack.top(); --> 返回 0.
minStack.getMin(); --> 返回 -2.

思路:就是栈的几个相关常规操作,注意常数复杂度获取最小值用辅助栈,栈顶是最小元素

class MinStack { Stack<Integer> stack; Stack<Integer> min;// 常数复杂度获取最小值用辅助栈,栈顶是最小元素*** public MinStack() { stack = new Stack<>(); min = new Stack<>(); } public void push(int val) { stack.push(val); if(min.empty() || val <= min.peek()) min.push(val); } public void pop() { if(min.peek().equals(stack.peek())) min.pop(); stack.pop(); } public int top() { return stack.peek(); } public int getMin() { return min.peek(); } }

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

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

立即咨询