一.题目描述
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。
示例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]
提示:
nums1.length == m + nnums2.length == n0 <= m, n <= 2001 <= m + n <= 200-109 <= nums1[i], nums2[i] <= 109
三.解题思路
由题目中得知,可以用暴力把nums2中的元素复制到nums1中去,然后对nums1进行排序
class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { for(int i=m;i<m+n;i++){ nums1[i]=nums2[i-m]; } for(int j=0;j<m+n;j++){ for(int k=0;k<m+n;k++){ if(nums1[j]<nums1[k]){ int temp=nums1[j]; nums1[j]=nums1[k]; nums1[k]=temp; } } } }}
四.总结
这道题应该还可以有用双指针的方法来做,奈何本人实力有限,只能到此为止。嗖嗖
本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情