道路標識232号
6455 ワード
私の答え
MyQueue.prototype.push = function(x) {
this.s1.push(x);
};
/**
* @return {number}
*/
MyQueue.prototype.pop = function() {
let result;
let len = this.s1.length-1;
for (i = 0; i < len; i++) {
this.s2.push(this.s1.pop());
}
result = this.s1.pop();
let len2 = this.s2.length
for (i = 0; i < len2; i++) {
this.s1.push(this.s2.pop());
}
return result;
};
/**
* @return {number}
*/
MyQueue.prototype.peek = function() {
return this.s1[0];
};
/**
* @return {boolean}
*/
MyQueue.prototype.empty = function() {
return (this.s1.length === 0);
};
スタック1とスタック2を宣言し、push時にスタック1に直接pushし、pop時にスタック1[0]以外のすべての要素をポップアップし、すぐにスタック2に保存します.これにより、スタック2には、スタック1[0]以外の要素が逆順序で格納される.その後、スタック1[0]もpopされて単独で保存され、再びpopスタック2の要素がスタック1に挿入される.実行速度が速く、メモリの使用量が少ない.
他人の解答
他の人の解答は私がスタックを押すときにやったように、保存順の逆順に並べられます.これは同じアルゴリズムをpushに実装するかpopに実装するかの違いのようだ.
Reference
この問題について(道路標識232号), 我々は、より多くの情報をここで見つけました https://velog.io/@htogether7/리트코드-232번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol