道路標識155号
11797 ワード
私の第1ラウンド
var MinStack = function() {
this.stack = [];
this.topIndex = -1;
};
/**
* @param {number} val
* @return {void}
*/
MinStack.prototype.push = function(val) {
this.stack[++this.topIndex] = val;
};
/**
* @return {void}
*/
MinStack.prototype.pop = function() {
this.topIndex--;
this.stack.length--;
};
/**
* @return {number}
*/
MinStack.prototype.top = function() {
return this.stack[this.topIndex];
};
/**
* @return {number}
*/
MinStack.prototype.getMin = function() {
return Math.min(...this.stack);
};
最高価格を求めてまだO(1)で表していません.私の2回目の答え
var MinStack = function() {
this.stack = [];
this.topIndex = -1;
this.min = [Number.MAX_SAFE_INTEGER];
};
/**
* @param {number} val
* @return {void}
*/
MinStack.prototype.push = function(val) {
this.stack[++this.topIndex] = val;
if (val <= this.min[this.min.length-1]) this.min[this.min.length] = val;
};
/**
* @return {void}
*/
MinStack.prototype.pop = function() {
if (this.stack[this.topIndex] === this.min[this.min.length-1]) this.min.length--;
this.topIndex--;
this.stack.length--;
};
/**
* @return {number}
*/
MinStack.prototype.top = function() {
return this.stack[this.topIndex];
};
/**
* @return {number}
*/
MinStack.prototype.getMin = function() {
return this.min[this.min.length-1];
};
minという配列を追加します.pushの場合、minの末尾の要素以下であれば、minの配列でも一緒にpushします.popの場合、popの値がminの末尾の要素と同じであれば、minもpopします.その後、getMinはmin配列の末尾の要素を返します.その結果,速度は2倍に向上した.気持ちがいいですね!他人の解答
他の人の接着剤も私とあまり差がなく、単独でMin Stackを作って使いました.
Reference
この問題について(道路標識155号), 我々は、より多くの情報をここで見つけました https://velog.io/@htogether7/리트코드-155번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol