题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))
- push(x)–将元素x插入栈中
- pop()–移除栈顶元素
- top()–得到栈顶元素
- min()–得到栈中最小元素
原理
这个题可以定义两个栈,一个数据栈用来存储入栈元素,另一个辅助栈用来存储最小值
当一个元素需要入栈时,将其直接入到数据栈,再对辅助栈进行判定是否为空,如果为空则直接入栈,如果不为空则和栈顶元素进行比较,谁小谁入栈
代码实现
1 | class minStack { |
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))
这个题可以定义两个栈,一个数据栈用来存储入栈元素,另一个辅助栈用来存储最小值
当一个元素需要入栈时,将其直接入到数据栈,再对辅助栈进行判定是否为空,如果为空则直接入栈,如果不为空则和栈顶元素进行比较,谁小谁入栈
1 | class minStack { |
微信支付
支付宝