Appearance
剑指Offer 30. 包含min函数的栈
js
var MinStack = function() {
this.stack = []
// 最小值也用栈
this.min = [Infinity]
};
/**
* @param {number} val
* @return {void}
*/
MinStack.prototype.push = function(val) {
this.stack.push(val)
// 将最小值栈的末尾和新元素比,两者小的存在数组中
this.min.push(Math.min(this.min[this.min.length - 1], val))
};
/**
* @return {void}
*/
MinStack.prototype.pop = function() {
// 同步出栈
this.stack.pop()
this.min.pop()
};
/**
* @return {number}
*/
MinStack.prototype.top = function() {
// 返回栈顶元素
return this.stack[this.stack.length - 1]
};
/**
* @return {number}
*/
MinStack.prototype.getMin = function() {
// 返回最小值栈顶元素
return this.min[this.min.length - 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()
*/