var merge = function(nums1, m, nums2, n) {
nums1.splice(m)
nums2.splice(n)
if (nums1.length === 0 || nums2.length === 0) {
nums1.push(...nums2);
return;
}
// 定义左指针
let left = 0;
// 定义右指针
let right = 0;
// 定义最终结果数组
let result = [];
// 当双方都没有走到头的时候
while (left != nums1.length && right != nums2.length) {
if (nums1[left] <= nums2[right]) {
left++;
} else {
nums1.splice(left,0,nums2[right])
right++
}
}
// 如果是左指针走到头了,但是右指针还没有
if (left === nums1.length && right != nums2.length) {
nums1.push(...nums2.slice(right));
}
// 如果是右指针走到头了,但是左指针还没有
if (right === nums1.length && left != nums2.length) {
nums1.push(...nums1.slice(left));
}
};
复制代码