解题思路
注意边界条件以及数组长度和索引表示
代码
/**
* @param {number[]} nums1
* @param {number} m
* @param {number[]} nums2
* @param {number} n
* @return {void} Do not return anything, modify nums1 in-place instead.
*/
var merge = function(nums1, m, nums2, n) {
let index1 = m-1;
let index2 = n-1;
// index表示合并后的数组索引
let index = m+n-1;
while(index2>=0){
// 如果nums1中没有元素,则将数组2中的元素存入数组1中
if(index1<0){
nums1[index--] = nums2[index2--];
}
// 从后往前存入
nums1[index--] = nums1[index1] >= nums2[index2] ? nums1[index1--] : nums2[index2--];
}
};