LeetCode算法 | Day10 棧與隊列:用棧實現(xiàn)隊列、用隊列實現(xiàn)棧

232. 用棧實現(xiàn)隊列

題目:

請你僅使用兩個棧實現(xiàn)先入先出隊列厘灼。隊列應當支持一般隊列支持的所有操作(push、pop咽瓷、peek设凹、empty):
實現(xiàn) MyQueue 類:

  • void push(int x) 將元素 x 推到隊列的末尾
  • int pop() 從隊列的開頭移除并返回元素
  • int peek() 返回隊列開頭的元素
  • boolean empty() 如果隊列為空,返回 true 茅姜;否則闪朱,返回 false
    說明:
  • 你 只能 使用標準的棧操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。
  • 你所使用的語言也許不支持棧。你可以使用 list 或者 deque(雙端隊列)來模擬一個棧奋姿,只要是標準的棧操作即可锄开。

解題思路:

兩個棧,一個輸入棧胀蛮,一個輸出棧院刁。

var MyQueue = function () {
    this.stackIn = [];
    this.stackOut = [];
};

/** 
 * @param {number} x
 * @return {void}
 */
MyQueue.prototype.push = function (x) {
    this.stackIn.push(x);
};

/**
 * @return {number}
 */
MyQueue.prototype.pop = function () {
    const size = this.stackOut.length;
    if (size) {
        return this.stackOut.pop();
    }
    while (this.stackIn.length) {
        this.stackOut.push(this.stackIn.pop());
    }
    return this.stackOut.pop();
};

/**
 * @return {number}
 */
MyQueue.prototype.peek = function () {
    const x = this.pop();
    this.stackOut.push(x);
    return x;
};

/**
 * @return {boolean}
 */
MyQueue.prototype.empty = function () {
    return !this.stackIn.length && !this.stackOut.length
};

/**
 * Your MyQueue object will be instantiated and called as such:
 * var obj = new MyQueue()
 * obj.push(x)
 * var param_2 = obj.pop()
 * var param_3 = obj.peek()
 * var param_4 = obj.empty()
 */

225. 用隊列實現(xiàn)棧

題目:

請你僅使用兩個隊列實現(xiàn)一個后入先出(LIFO)的棧,并支持普通棧的全部四種操作(push粪狼、top退腥、pop 和 empty)。
實現(xiàn) MyStack 類:

  • void push(int x) 將元素 x 壓入棧頂再榄。
  • int pop() 移除并返回棧頂元素狡刘。
  • int top() 返回棧頂元素。
  • boolean empty() 如果棧是空的困鸥,返回 true 嗅蔬;否則,返回 false 疾就。
    注意:
  • 你只能使用隊列的基本操作 —— 也就是 push to back澜术、peek/pop from front、size 和 is empty 這些操作猬腰。
  • 你所使用的語言也許不支持隊列鸟废。 你可以使用 list (列表)或者 deque(雙端隊列)來模擬一個隊列 , 只要是標準的隊列操作即可。

解題思路:

一個隊列就可以解決問題了姑荷。

var MyStack = function () {
    this.queue = [];
};

/** 
 * @param {number} x
 * @return {void}
 */
MyStack.prototype.push = function (x) {
    this.queue.push(x);
};

/**
 * @return {number}
 */
MyStack.prototype.pop = function () {
    let size = this.queue.length;
    size--;
    while (size--) {
        this.queue.push(this.queue.shift());
    }
    return this.queue.shift();
};

/**
 * @return {number}
 */
MyStack.prototype.top = function () {
    const x = this.pop();
    this.queue.push(x);
    return x;
};

/**
 * @return {boolean}
 */
MyStack.prototype.empty = function () {
    return !this.queue.length;
};

/**
 * Your MyStack object will be instantiated and called as such:
 * var obj = new MyStack()
 * obj.push(x)
 * var param_2 = obj.pop()
 * var param_3 = obj.top()
 * var param_4 = obj.empty()
 */
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盒延,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鼠冕,更是在濱河造成了極大的恐慌添寺,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件懈费,死亡現(xiàn)場離奇詭異计露,居然都是意外死亡,警方通過查閱死者的電腦和手機憎乙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門票罐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人寨闹,你說我怎么就攤上這事胶坠。” “怎么了繁堡?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵沈善,是天一觀的道長乡数。 經(jīng)常有香客問我,道長闻牡,這世上最難降的妖魔是什么净赴? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮罩润,結(jié)果婚禮上墨吓,老公的妹妹穿的比我還像新娘挑豌。我一直安慰自己埃跷,他們只是感情好本讥,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著严沥,像睡著了一般猜极。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上消玄,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天跟伏,我揣著相機與錄音,去河邊找鬼翩瓜。 笑死受扳,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的兔跌。 我是一名探鬼主播勘高,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼浮定!你這毒婦竟也來了相满?” 一聲冷哼從身側(cè)響起层亿,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤桦卒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后匿又,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體方灾,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年碌更,在試婚紗的時候發(fā)現(xiàn)自己被綠了裕偿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡痛单,死狀恐怖嘿棘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旭绒,我是刑警寧澤鸟妙,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布焦人,位于F島的核電站,受9級特大地震影響重父,放射性物質(zhì)發(fā)生泄漏花椭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一房午、第九天 我趴在偏房一處隱蔽的房頂上張望矿辽。 院中可真熱鬧,春花似錦郭厌、人聲如沸袋倔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奕污。三九已至,卻和暖如春液走,著一層夾襖步出監(jiān)牢的瞬間碳默,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工缘眶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嘱根,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓巷懈,卻偏偏與公主長得像该抒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子顶燕,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容