三. 隊(duì)列1 用2個(gè)棧實(shí)現(xiàn)隊(duì)列

正如標(biāo)題所述败晴,你需要使用兩個(gè)棧來實(shí)現(xiàn)隊(duì)列的一些操作覆致。

隊(duì)列應(yīng)支持push(element)利耍,pop() 和 top(),其中pop是彈出隊(duì)列中的第一個(gè)(最前面的)元素出皇。
pop和top方法都應(yīng)該返回第一個(gè)元素的值羞芍。

思路:這里有一個(gè)老哥的討論感覺很有趣也很有用
我開始是考慮到了將一個(gè)用來導(dǎo)入,一個(gè)用來緩存郊艘,但是效率太低荷科。不過,看到他的討論的最后一個(gè)方案確實(shí)很不錯(cuò)纱注,利用隊(duì)列先進(jìn)先出的性質(zhì)畏浆,具體的就不轉(zhuǎn)載了,鏈接里很詳細(xì)狞贱。

Python3

class MyQueue:

    def __init__(self):
        self.stack1 = []
        self.stack2 = []
        
    def push(self, element):
        # write your code here
        self.stack1.append(element)
        
    def top(self):
        # write your code here
        # return the top element
        if self.stack2:
            return self.stack2[-1]
        else:
            while self.stack1:
                self.stack2.append(self.stack1.pop())
            return self.stack2[-1]
            
    def pop(self):
        # write your code here
        # pop and return the top element
        if self.stack2:
            return self.stack2.pop()
        else:
            while self.stack1:
                self.stack2.append(self.stack1.pop())
            return self.stack2.pop()

在寫這段代碼的過程中犯了一個(gè)小錯(cuò)誤導(dǎo)致memory limitation exceeding刻获。
stack1.pop stack1.pop()

Java

public class MyQueue {
    private Stack<Integer> stack1;
    private Stack<Integer> stack2;

    public MyQueue() {
       // do initialization if necessary
       stack1 = new Stack<Integer>();
       stack2 = new Stack<Integer>();
    }
    
    public void push(int element) {
        // write your code here
        stack1.push(element);
        
    }

    public int pop() {
        // write your code here
        if (!stack2.empty())
        {
            return stack2.pop();
        }
        while(!stack1.empty())
        {
            int x = stack1.pop();
            stack2.push(x);
        }
        return stack2.pop();
    }

    public int top() {
        // write your code here
        if (!stack2.empty())
        {
            return stack2.peek();
        }
        while(!stack1.empty())
        {
            int x = stack1.pop();
            stack2.push(x);
        }
        return stack2.peek();
    }
}

在編寫中遇到一些問題:

  1. int 與 integer的相等問題
    經(jīng)過查閱,int 是一個(gè)數(shù)據(jù)類型瞎嬉,初值0蝎毡; integer是一個(gè)int的包裝類,初值null氧枣。但是在對(duì)比時(shí)沐兵,integer會(huì)拆箱和int對(duì)比,所以int == integer便监,只要值相等扎谎,就會(huì)相等。
    除此之外烧董,兩個(gè)新建的integer是不相等的(比較的是地址)毁靶。非新建的integer在-128-127之間,只要值相等就==(引用)逊移,但是如果不在這之間预吆,就算值等他們也不==,因?yàn)樗麄儠?huì)單獨(dú)建立對(duì)象胳泉,互不引用啡浊。
    More
  2. 調(diào)用所有的函數(shù)還是建立新的對(duì)象觅够,都會(huì)有()。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末巷嚣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子钳吟,更是在濱河造成了極大的恐慌廷粒,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件红且,死亡現(xiàn)場離奇詭異坝茎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)暇番,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門嗤放,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人壁酬,你說我怎么就攤上這事次酌。” “怎么了舆乔?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵岳服,是天一觀的道長。 經(jīng)常有香客問我希俩,道長吊宋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任颜武,我火速辦了婚禮璃搜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鳞上。我一直安慰自己这吻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布因块。 她就那樣靜靜地躺著橘原,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涡上。 梳的紋絲不亂的頭發(fā)上趾断,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音吩愧,去河邊找鬼芋酌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛雁佳,可吹牛的內(nèi)容都是我干的脐帝。 我是一名探鬼主播同云,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼堵腹!你這毒婦竟也來了炸站?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤疚顷,失蹤者是張志新(化名)和其女友劉穎旱易,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腿堤,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡阀坏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了笆檀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忌堂。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖酗洒,靈堂內(nèi)的尸體忽然破棺而出士修,到底是詐尸還是另有隱情,我是刑警寧澤寝蹈,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布李命,位于F島的核電站,受9級(jí)特大地震影響箫老,放射性物質(zhì)發(fā)生泄漏封字。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一耍鬓、第九天 我趴在偏房一處隱蔽的房頂上張望阔籽。 院中可真熱鬧,春花似錦牲蜀、人聲如沸笆制。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽在辆。三九已至,卻和暖如春度苔,著一層夾襖步出監(jiān)牢的瞬間匆篓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國打工寇窑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸦概,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓甩骏,卻偏偏與公主長得像窗市,于是被迫代替她去往敵國和親先慷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法咨察,類相關(guān)的語法论熙,內(nèi)部類的語法,繼承相關(guān)的語法摄狱,異常的語法赴肚,線程的語...
    子非魚_t_閱讀 31,582評(píng)論 18 399
  • java筆記第一天 == 和 equals ==比較的比較的是兩個(gè)變量的值是否相等,對(duì)于引用型變量表示的是兩個(gè)變量...
    jmychou閱讀 1,485評(píng)論 0 3
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)二蓝。 張土汪:刷leetcod...
    土汪閱讀 12,724評(píng)論 0 33
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,125評(píng)論 29 470
  • 仲夏之夜,余突感嗓疼胸悶指厌,干咳不止刊愚,仿有異物在喉難吐難咽!細(xì)思其因踩验,嗜煙所致鸥诽,深究其果,癮伏于身箕憾,終日積成疾牡借。更甚...
    雪憶0331閱讀 163評(píng)論 0 0