Skip to content

合并两个有序数组

作者:青见春山
发表于:2026-06-03
字数统计:114 字
预计阅读1分钟
/**
 * @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 end = nums1.length-1
    let n1 = m-1, n2 = n-1
    while(n2>=0){
        // 此时应该用n2的长度做参照,而不应该for循环遍历nums1,因为nums1前面可能是有序的
        if(nums1[n1]>nums2[n2]){
            nums1[end] = nums1[n1]
            n1--
        }else{
            nums1[end] = nums2[n2]
            n2--
        }
        end--
    }
};