- 请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。
示例:
MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); --> 返回 -3. minStack.pop(); minStack.top(); --> 返回 0. minStack.getMin(); --> 返回 -2.
程序代码
var MinStack = function() {
this.item=[];
this.help=[Infinity];
};
MinStack.prototype.push = function(x) {
this.item.push(x);
this.help.push(Math.min(x,this.help[this.help.length-1]))
};
MinStack.prototype.pop = function() {
this.item.pop();
this.help.pop();
};
MinStack.prototype.top = function() {
return this.item[this.item.length-1]
};
MinStack.prototype.getMin = function() {
return this.help[this.help.length-1]
};
|