题目
算法
双指针
code
var merge = function(nums1, m, nums2, n) {// 其实就是一个nums1数组从后向前的降序重排,从最后开始,比较nums1有效位置和nums2当前位置数的大小,依次填入,nums2最后若有剩余,则再多一步从后向前填入即可let i = m-1, j = n-1, k = m+n-1while(i>=0 && j>=0){if(nums1[i] >= nums2[j]){nums1[k] = nums1[i]i--;k--}else{nums1[k] = nums2[j]j--;k--}}while(j >= 0){nums1[k] = nums2[j]j--;k--}
};
JS偷跑
var merge = function(nums1, m, nums2, n) {nums1.splice(m, n, ...nums2)return nums1.sort((a, b) => a-b)
};