1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        每日算法:最小棧(包含getMin函數(shù)的棧)

        共 1942字,需瀏覽 4分鐘

         ·

        2021-08-29 09:17


        點(diǎn)擊上方 三分鐘學(xué)前端,關(guān)注公眾號(hào)

        回復(fù)交流,加入前端編程面試算法每日一題群


        面試官也在看的前端面試資料

        設(shè)計(jì)一個(gè)支持 push ,pop ,top 操作,并能在常數(shù)時(shí)間內(nèi)檢索到最小元素的棧。

        • push(x) —— 將元素 x 推入棧中。
        • pop() —— 刪除棧頂?shù)脑亍?/section>
        • top() —— 獲取棧頂元素。
        • getMin() —— 檢索棧中的最小元素。

        示例:

        MinStack minStack = new MinStack();
        minStack.push(-2);
        minStack.push(0);
        minStack.push(-3);
        minStack.getMin();   --> 返回 -3.
        minStack.pop();
        minStack.top();      --> 返回 0.
        minStack.getMin();   --> 返回 -2.

        解答在常數(shù)時(shí)間內(nèi)檢索到最小元素的棧,即僅需保證 getMin 的時(shí)間復(fù)雜度為 O(1) 即可

        class MinStack {
          constructor () {
            this.length = 0;
            this.content = [];
            this.mins = [];
          }
          push (val) {
            const curMin = this.mins[this.length - 1] !== undefined ? this.mins[this.length - 1] : Infinity;
            this.content[this.length++] = val;
            this.mins[this.length - 1] = Math.min(curMin, val);
          }
          pop () {
            return this.content[--this.length]
          }
          top () {
            return this.content[this.length - 1]
          }
          getMin () {
            return this.mins[this.length - 1];
          }
        }

        時(shí)間復(fù)雜度:進(jìn)棧O(1),出棧O(n),獲取棧頂元素O(1),獲取最小元素O(1)

        空間復(fù)雜度:O(n)

        最后

        歡迎關(guān)注「三分鐘學(xué)前端」,回復(fù)「交流」自動(dòng)加入前端三分鐘進(jìn)階群,每日一道編程算法面試題(含解答),助力你成為更優(yōu)秀的前端開(kāi)發(fā)!

        號(hào)內(nèi)回復(fù):

        網(wǎng)絡(luò)」,自動(dòng)獲取三分鐘學(xué)前端網(wǎng)絡(luò)篇小書(shū)(90+頁(yè))
        JS」,自動(dòng)獲取三分鐘學(xué)前端 JS 篇小書(shū)(120+頁(yè))
        算法」,自動(dòng)獲取 github 2.9k+ 的前端算法小書(shū)
        面試」,自動(dòng)獲取 github 23.2k+ 的前端面試小書(shū)
        簡(jiǎn)歷」,自動(dòng)獲取程序員系列的 120 套模版
        》》面試官也在看的前端面試資料《《
        “在看和轉(zhuǎn)發(fā)”就是最大的
        瀏覽 29
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日产精品久久久久 | 我诱女偷伦初尝云雨 | 成人做爱视频免费线上免费播放网站 | 欧美激情精品 | 亚州骚逼| 91探花系列在线播放 | 关之琳三a级做爰 | 放荡老师张开双腿任我玩动图 | 色婷婷综合久久精品一区二区三区 | 插入逼夜视频网址 |