155. 最小栈
来源:力扣(LeetCode)
链接: https://leetcode.cn/problems/min-stack/
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
实现 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);
min
本文介绍了如何设计一个最小栈,支持push、pop、top和getMin操作,并能在常数时间内检索到最小元素。解决方案包括使用辅助栈和链表结构,通过维护一个额外的栈保存最小值,或利用链表节点存储每个节点的最小值。代码实现分别给出了Python和C++的版本,复杂度分析为时间复杂度和空间复杂度均为O(n)。
订阅专栏 解锁全文
385

被折叠的 条评论
为什么被折叠?



