溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Lintcode40 Implement Queue by Two Stacks solution 題解

發(fā)布時(shí)間:2020-07-03 11:03:00 來(lái)源:網(wǎng)絡(luò) 閱讀:483 作者:abcdd1234567890 欄目:開(kāi)發(fā)技術(shù)

【題目描述】

As the title described, you should only use two stacks to implement a queue's actions.The queue should support push(element), pop() and top() where pop is pop the first(a.k.a front) element in the queue.Both pop and top methods should return the value of first element.

正如標(biāo)題所述,你需要使用兩個(gè)棧來(lái)實(shí)現(xiàn)隊(duì)列的一些操作。隊(duì)列應(yīng)支持push(element),pop() 和 top(),其中pop是彈出隊(duì)列中的第一個(gè)(最前面的)元素。pop和top方法都應(yīng)該返回第一個(gè)元素的值。

【題目鏈接】

http://www.lintcode.com/en/problem/implement-queue-by-two-stacks/

【題目解析】

用兩個(gè)Stack來(lái)實(shí)現(xiàn)一個(gè)Queue,可以考慮到push()時(shí),幾乎與Queue中的offer()一樣,都是加在末尾,區(qū)別是當(dāng)Stack pop()時(shí),取出的是最近加入(newest)的元素,而Queue用poll()則是將最老(oldest)的元素取出。使用2個(gè)Stack,可以將stack2作為push()時(shí)的目標(biāo),而另一個(gè)stack1用來(lái)翻轉(zhuǎn)順序,只有當(dāng)peek()或者是poll()時(shí),才需要將元素翻轉(zhuǎn)存入stack1,再進(jìn)行讀取。

【參考答案】

http://www.jiuzhang.com/solutions/implement-queue-by-two-stacks/


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI