题目
算法
双指针
code
var merge = function(nums1, m, nums2, n) {
// 其实就是一个nums1数组从后向前的降序重排,从最后开始,比较nums1有效位置和nums2当前位置数的大小,依次填入,nums2最后若有剩余,则再多一步从后向前填入即可
let i = m-1, j = n-1, k = m+n-1
while(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)
};