LeetCode 题解:155. 最小栈,单个栈同时存储最小值,JavaScript,详细注释
阅读更多系列文章请访问我的GitHub 博客
原题链接:https://leetcode-cn.com/problems/min-stack/
解题思路:
参考了详细通俗的思路分析,多解法的第2种方法。建议先看该题解,再来看我的注释。
入栈时,对比入栈的值与当前最小值,如果入栈的值更小,则同时存储当前最小值和入栈的值。反之,则只需要存储当前入栈的值。
出栈时,对比栈顶的值是否等于当前最小值,则表示当前的值,在入栈时同时存入了前一次的最小值和当前值,因此要进行2次pop,同时用第二次pop的值更新最小值。
该方法的重点是保持入栈和出栈的操作方式一致,同时每个阶段的最小值都被保存了。
版权声明: 本文为 InfoQ 作者【Lee Chen】的原创文章。
原文链接:【http://xie.infoq.cn/article/c48ab5a1c4bcbf991866a1d1e】。文章转载请联系作者。
评论