题目描述
设计一个支持
push
,pop
,top
操作,并能在常数时间内检索到最小元素的栈。 实现MinStack
类:MinStack()
初始化void push(int val)
将元素推入堆栈void pop()
删除堆栈顶部的元素int pop()
获取堆栈顶部的元素int getMin()
获取堆栈中的最小元素
题解:
这道题首先要满足堆栈的特性 LIFO,其次是能够在常数时间内获取当前栈中最小的元素,因此我们可以用堆栈保存 个二元组,二元组的第一个元素是存入栈中的值,第二个元素是当前元素作为栈顶元素的时候,栈中的最小值。有 了这个思路,代码实现起来就很简单了。
class MinStack {...