自学内容网 自学内容网

力扣0088——合并两个有序数组

合并两个有序数组

难度:简单

题目描述

给你两个按 非递减顺序 排列的整数数组 nums1nums2,另有两个整数 mn ,分别表示 nums1nums2 中的元素数目。

请你 合并 nums2nums1 中,使合并后的数组同样按 非递减顺序 排列。

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

示例1

输入: nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
输出:[1,2,2,3,5,6]

示例2

输入: nums1 = [1], m = 1, nums2 = [], n = 0
输出:[1]

示例3

输入: nums1 = [0], m = 0, nums2 = [1], n = 1
输出:[1]

题解

因为nums1的长度为m+n,所以可以直接将nums2的内容加入到nums1中然后进行 S o r t Sort Sort排序

想法代码

class Solution
{
    public static void Main(String[] args)
    {
        int[] nums1 = { 1, 2, 3, 0, 0, 0};
        int[] nums2 = { 2, 5, 6 };
        int m = 3;
        int n = 3;
        Solution solution = new Solution();
        solution.Merge(nums1, m, nums2, n);
        foreach (int i in nums1)
        {
            Console.Write(i + " ");
        }
    }

    public void Merge(int[] nums1, int m, int[] nums2, int n)
    {
        for (int i = m, j = 0; j < n; i++, j++)
        {
            nums1[i] = nums2[j];
        }
        Array.Sort(nums1);
    }
}

原文地址:https://blog.csdn.net/Aubyn11/article/details/135881705

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!