JavaScriptは二つの秩序配列を合併する.

1051 ワード

function merge(nums1, nums2) {
  var len1 = nums1.length - 1;
  var len2 = nums2.length - 1;
  var len = nums1.length + nums2.length - 1;

  while (len1 >= 0 && len2 >= 0) {
    nums1[len--] = nums1[len1] > nums2[len2] ? nums1[len1--] : nums2[len2--];
  }
  return nums1;
}
入力
[1,2,3][2,4,5,6,7,8,9]
出力
[1,2,2,3,4,5,6,7,8,9]
解析
  • は、配列1、配列2、および統合後の配列の長さ
  • を取得する.
  • は後から巡回して比較して、len 1あるいはlen 2が0の時に退出します.
    番号付け
    len 1
    len 2
    len
    nums 1[len 1]
    nums 2[len 2]
    nums
    1
    2
    6
    9
    3
    9
    [1,2,3,empty*6,9]
    2
    2
    5
    8
    3
    8
    [1,2,3,empy*5,8,9]
    3
    2
    4
    7
    3
    7
    [1,2,3,empy*4,7,8,9]
    4
    2
    3
    6
    3
    6
    [1,2,3,empy*3,6,7,8,9]
    5
    2
    2
    5
    3
    5
    [1,2,3,empy*2,5,6,7,8,9]
    6
    2
    1
    4
    3
    4
    [1,2,3,empy*1,4,5,6,7,8,9]
    7
    1
    1
    3
    3
    2
    [1,2,3,3,4,5,6,7,8,9]
    8
    0
    1
    2
    2
    2
    [1,2,2,3,4,5,6,7,8,9]