155.最小栈
最小栈
设计一个支持 push、pop、top 操作,并能在常数时间内检索到最小元素的栈。
实现 MinStack 类:
MinStack()初始化堆栈对象void push(int val)将元素 val 推入堆栈void pop()删除堆栈顶部的元素int top()获取堆栈顶部的元素int getMin()获取堆栈中的最小元素
示例:
输入:
[“MinStack”,”push”,”push”,”push”,”getMin”,”pop”,”top”,”getMin”]
[[],[-2],[0],[-3],[],[],[],[]]
输出:
[null,null,null,null,-3,null,0,-2]
提示:
- $-2^{31}$ <= val <= $2^{31} - 1$
- pop、top 和 getMin 操作总是在 非空栈 上调用
- push、pop、top 和 getMin 最多被调用 $3 * 10^4$ 次
解析
使用辅助栈同步记录每个状态下的最小值。
1 | |
辅助栈的栈顶始终是当前栈中的最小值,所有操作均为 O(1)。
155.最小栈
https://leetcode.lz5z.com/155.min-stack/