题目:
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) – 将元素 x 推入栈中。
pop() – 删除栈顶的元素。
top() – 获取栈顶元素。
getMin() – 检索栈中的最小元素。
思路:
需要维护一个辅助栈,使该辅助栈的栈顶元素保持为栈的最小元素。
代码:
1 | class MinStack { |
复杂度分析及总结:
时间复杂度:
O(1)。
空间复杂度:
O(n)。辅助栈需要大小为n的空间。