155. 最小栈
Contents
155. 最小栈
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 示例:
MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); –> 返回 -3. minStack.pop(); minStack.top(); –> 返回 0. minStack.getMin(); –> 返回 -2.
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/min-stack 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解:
借助辅助栈,以空间换时间,辅助栈是单调栈,存放的元素依次递减。获取最小元素时,直接取辅助栈栈顶元素,故其获取最小值时间复杂度O(1).
代码如下:
|
|
时间复杂度:O(1) push pop getMin top 时间复杂度都是O(1)
空间复杂度:O(N) 利用了额外的辅助栈
Author 飞熊
LastMod Apr 11