<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          每日算法:合并兩個(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)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产国产日韩欧美V∧ | 任你躁精品视频一区二区三区 | 国产色情电影在线观看 | 精品人妻一区二区三区视频在线 | 成人片成人片 |