5、合并一个有序数组

45 阅读1分钟

题目

给你两个按 非递减顺序 排列的整数数组 nums1 **和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
请你 合并 nums2 **到 nums1 中,使合并后的数组同样按 非递减顺序 排列。

注意: 最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情 况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。

思路

将nums元素从后面一个一个加入到nums1,再对nums1排序

代码

var merge = function(nums1, m, nums2, n) {

        let index=m+n-1

        let index2=n-1

        for(let i=0;i<n;i++){

            nums1[index--]=nums2[index2--]

        }

        nums1.sort((a,b)=>a-b)

    };
    ~~~