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>

        每日算法:合并兩個(gè)有序數(shù)組

        共 2506字,需瀏覽 6分鐘

         ·

        2021-08-20 06:48


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

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


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

        給你兩個(gè)有序整數(shù)數(shù)組 nums1 和 nums2,請(qǐng)你將 nums2 合并到 nums1 中,使 num1 成為一個(gè)有序數(shù)組。

        說(shuō)明:

        初始化 nums1nums2 的元素?cái)?shù)量分別為 mn 。你可以假設(shè) nums1 有足夠的空間(空間大小大于或等于 m + n )來(lái)保存 nums2 中的元素。

        示例:

        輸入:
        nums1 = [1,2,3,0,0,0], m = 3
        nums2 = [2,5,6],       n = 3

        輸出: [1,2,2,3,5,6]

        解題思路:

        • nums1 、 nums2 有序,若把 nums2 全部合并到 nums1 ,則合并后的 nums1 長(zhǎng)度為 m+n
        • 我們可以從下標(biāo) m+n-1 的位置填充 nums1 ,比較 nums1[len1]nums2[len2] 的大小,將最大值寫(xiě)入 nums1[len],即
          • nums1[len1]>=nums2[len2] ,nums1[len--] = nums1[len1--] ,這里 -- 是因?yàn)閷?xiě)入成功后,下標(biāo)自動(dòng)建議,繼續(xù)往前比較
          • 否則 nums1[len--] = nums2[len2--]
        • 邊界條件:
          • len1 < 0,即 len2 >= 0 ,此時(shí) nums1 已重寫(xiě)入, nums2 還未合并完,僅僅需要將 nums2 的剩余元素(0…len)寫(xiě)入 nums2 即可,寫(xiě)入后,合并完成
          • len2 < 0,此時(shí) nums2 已全部合并到 nums1 ,合并完成

        時(shí)間復(fù)雜度為 O(m+n)

        代碼實(shí)現(xiàn):

        const merge = function(nums1, m, nums2, n{
            let len1 = m - 1,
                len2 = n - 1,
                len = m + n - 1
            while(len2 >= 0) {
                if(len1 < 0) {
                    nums1[len--] = nums2[len2--]
                    continue
                }
                nums1[len--] = nums1[len1] >= nums2[len2] ? nums1[len1--]: nums2[len2--]
            }
        };

        來(lái)源:https://github.com/sisterAn/JavaScript-Algorithms

        最后

        歡迎關(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ā)”就是最大的
        瀏覽 36
        點(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>
            超碰免费人人 | www.淫淫淫.con | 大香蕉综合在线 | 久久久久久久久久久一区 | 国产精品美女久久久久AV夜色 | 国产精品自拍网 | 国产欧美另类五月丁香水多多 | 美女被操视频在线看 | 欧美成人一级视频 | 男女黄床上色视频免费的小说 |