“日日行,不怕千万里;常常做,不怕千万事。” —— 《格言联璧·处事》
oi!!栈的知识点在这里!!!点击跳转!!!
最小栈讲解目录:
- 题目:
- 题目实例解释:
- 题解:
- js代码解析:
- 通过:
题目:
题目实例解释:
题解:
- Stack增加使用 push() 方法
- Stack删除使用 pop() 方法
- 所以push和pop方法就有了,top方法就是求栈顶,即表尾的数。
- 主要是getMain如何求解,我们可以每次将最小数和前一个数作比较,哪个数字小就存储哪个数字,这样每次取出都是最小数了。
js代码解析:
var MinStack = function() {this.stack = [];this.min_stack = [Infinity];
};/** * @param {number} val* @return {void}*/
MinStack.prototype.push = function(val) {this.stack.push(val);this.min_stack.push(Math.min(this.min_stack.at(-1),val));
};/*** @return {void}*/
MinStack.prototype.pop = function() {this.stack.pop();this.min_stack.pop();
};/*** @return {number}*/
MinStack.prototype.top = function() {return this.stack.at(-1);
};/*** @return {number}*/
MinStack.prototype.getMin = function() {return this.min_stack.at(-1);
};/** * Your MinStack object will be instantiated and called as such:* var obj = new MinStack()* obj.push(val)* obj.pop()* var param_3 = obj.top()* var param_4 = obj.getMin()*/