链接: https://leetcode-cn.com/problems/bao-han-minhan-shu-de-zhan-lcof/
题意
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
解法
设定一个辅助栈 存非严格递减的栈
每次调用min的时候传辅助栈的栈顶
调用pop的时候 如果辅助栈顶也是一样的值就进行pop
调用push的时候 判断是否和小于等于辅助栈栈顶
等于是为了防止当存在两个相同的最小值被pop掉
代码
1 | class MinStack { |