两个有序数组合成一个有序数组
有两个数组
var arr1 = [1,2,4,6,8]
var arr2 = [3,3,5,6]
合并成 [1,2,3,3,4,5,6,6,8]
思路: 因为两个都是有序数组,所以从两个数组的最后一项开始依次向前做比较
方法1:
newArrFun(arr1,arr1.length,arr2,arr2.length) function newArrFun(arr1,n,arr2,m) { var len1 = n-1 var len2 = m-1 var len = m+n var arr = [] for(var i = len-1; i>=0 ; i--) { if(len2 < 0 || len1 < 0) { arr[i] = len2 < 0 ? arr1[len1--] : arr2[len2--] }else { arr[i] = arr1[len1] > arr2[len2] ? arr1[len1--] : arr2[len2--] } } console.log('arr:',arr)
return arr }
方法2:
newArrFun1(arr1,arr1.length,arr2,arr2.length) function newArrFun1(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--] } }

浙公网安备 33010602011771号