LeetCode 题解:155. 最小栈,单个栈 + 对象存储,JavaScript,详细注释

用户头像
Lee Chen
关注
发布于: 2020 年 08 月 29 日
LeetCode题解:155. 最小栈,单个栈+对象存储,JavaScript,详细注释

阅读更多系列文章请访问我的GitHub 博客



原题链接:https://leetcode-cn.com/problems/min-stack/



解题思路:



  1. 使用一个栈,每个元素存储一个对象或数组,其中保存当前栈的值和最小值。

  2. 每次有值入栈时,存储当前值,在对比之前存储的最小值与当前值的大小,取较小值存储。



/**
* @param {number} x
* @return {void}
*/
MinStack.prototype.push = function(x) {
// 如果当前栈为空,则直接存储
if (!this.stack.length) {
this.stack.push({
value: x,
min: x,
});
} else {
// 对比当前最小值,进行存储
this.stack.push({
value: x,
min: Math.min(x, this.stack[this.stack.length - 1].min),
});
}
};
/**
* @return {void}
*/
MinStack.prototype.pop = function () {
this.stack.pop();
};
/**
* @return {number}
*/
MinStack.prototype.top = function () {
return this.stack[this.stack.length - 1].value;
};
/**
* @return {number}
*/
MinStack.prototype.getMin = function () {
return this.stack[this.stack.length - 1].min;
};



发布于: 2020 年 08 月 29 日 阅读数: 24
用户头像

Lee Chen

关注

还未添加个人签名 2018.08.29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:155. 最小栈,单个栈+对象存储,JavaScript,详细注释