包含 min 函数的栈
题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数(时间复杂度应为O(1))。
分析:别人的题解之后都是使用了另外一个栈来保持在入栈过程中曾经做过最小值的值,pop 的时候判断两个栈顶元素是否一致,一致的话都要 pop,在这种情况下取最小值需要从保存最小值的栈顶元素取值。元素需要定义为 static 并且要手动初始化,不然list会被初始化为 null,此解法作者的想法是不希望用另外一个栈,那么为了实现这一目的,在栈中需要保留冗余的曾经的最小值,这样能够比较方便到找到当前的此小值。
PS:与牛客相同!
代码: