给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。
注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。
解法一、
1 | class Solution { |
补充:arraycopy方法的使用
System.arraycopy(nums2,0,nums1,m, n);
参数
- src – 这是源数组.
- srcPos – 这是源数组中的起始位置。
- dest – 这是目标数组。
- destPos – 这是目标数据中的起始位置。
- length – 这是一个要复制的数组元素的数目。
java自带的函数,将数组num2的第一个元素(索引为0)开始,合并到目标数组num1的第m个位置,一共合并n个元素。
合并完第二步,就是使用Arrays工具类调用sort方法进行排序。
时间复杂度为对数级的。