面試題09. 用兩個棧實現(xiàn)隊列

用兩個棧實現(xiàn)隊列

題目描述

用兩個棧實現(xiàn)一個隊列皇钞。隊列的聲明如下,請實現(xiàn)它的兩個函數(shù) appendTail 和 deleteHead 烘绽,分別完成在隊列尾部插入整數(shù)和在隊列頭部刪除整數(shù)的功能襟己。(若隊列中沒有元素探赫,deleteHead 操作返回 -1 )


示例:

輸入:
["CQueue","appendTail","deleteHead","deleteHead"]
[[],[3],[],[]]
輸出:[null,null,3,-1]

輸入:
["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"]
[[],[],[5],[2],[],[]]
輸出:[null,-1,null,null,5,2]


提示:
1 <= values <= 10000
最多會對 appendTail、deleteHead 進行 10000 次調(diào)用

轉(zhuǎn)載來源:力扣(LeetCode)


題目分析

往隊尾加元素這個很簡單嘱能,只要往一個棧里面push元素就好了吝梅,這題的重點在于從一個棧里面拿出隊頭元素;
對于一個棧來說惹骂,逐個pop的結(jié)果序列就是從尾到頭苏携,把這個結(jié)果序列再放進一個棧里面,這個棧就是第一棧的鏡像棧(從頭到尾)对粪,第二個棧的pop就是取出第一個棧的隊頭元素右冻,用這兩個棧就可以實現(xiàn)基本的隊列了;
這題思路就是上面那樣著拭,代碼的具體實現(xiàn)還有一個小問題纱扭,就是什么時候?qū)⒌谝粋€棧的元素逐個pop到第二個棧里,我的實現(xiàn)是這樣的:如果需要取隊頭元素儡遮,就去第二個棧取乳蛾,如果第二個棧空了,就把第一個棧的元素鏡像到第二個棧里肃叶,如果第二個棧還是空蹂随,就返回-1,而push元素的話只需要往第一個棧push就好因惭,和第二個棧無關(guān)
拓展一下岳锁,如果要取出這個隊列里的所有元素,就需要逐個把第二個棧里的元素pop到第一個棧里面蹦魔。

class CQueue() {
    val stackInput = Stack<Int>()
    val stackOutput = Stack<Int>()

    fun appendTail(value: Int) {
        stackInput.push(value)
    }

    fun deleteHead(): Int {
        if(stackOutput.empty()){
            while(!stackInput.empty()){
                stackOutput.push(stackInput.pop())
            }
        }
        if(stackOutput.empty())
            return -1
        return stackOutput.pop()
    }
}

代碼文件


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末激率,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子勿决,更是在濱河造成了極大的恐慌柱搜,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剥险,死亡現(xiàn)場離奇詭異聪蘸,居然都是意外死亡,警方通過查閱死者的電腦和手機表制,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門健爬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人么介,你說我怎么就攤上這事娜遵。” “怎么了壤短?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵设拟,是天一觀的道長。 經(jīng)常有香客問我久脯,道長纳胧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任帘撰,我火速辦了婚禮跑慕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘摧找。我一直安慰自己核行,他們只是感情好,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布蹬耘。 她就那樣靜靜地躺著芝雪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪综苔。 梳的紋絲不亂的頭發(fā)上惩系,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天位岔,我揣著相機與錄音,去河邊找鬼蛆挫。 笑死赃承,一個胖子當著我的面吹牛妙黍,可吹牛的內(nèi)容都是我干的悴侵。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼拭嫁,長吁一口氣:“原來是場噩夢啊……” “哼可免!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起做粤,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤浇借,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后怕品,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妇垢,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年肉康,在試婚紗的時候發(fā)現(xiàn)自己被綠了闯估。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡吼和,死狀恐怖涨薪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情炫乓,我是刑警寧澤刚夺,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站末捣,受9級特大地震影響侠姑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜箩做,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一结借、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卒茬,春花似錦船老、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至郭赐,卻和暖如春薪韩,著一層夾襖步出監(jiān)牢的瞬間确沸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工俘陷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留罗捎,地道東北人。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓拉盾,卻偏偏與公主長得像桨菜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子捉偏,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

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