题目描述
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
说明:
- nums1和nums2的元素数量分别是 m 和 n
- nums1的空间大小 >= m+n
方法
双指针
需要从尾开始遍历,否则在 nums1 上归并得到的值会覆盖还未进行归并比较的值。
代码
时间复杂度: O(m + n)
空间复杂度: O(1)
注意
需要考虑 nums1 或 nums2 的元素数量为 0 的情况。
补充知识
arraycopy()方法
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos,int length);
参数:
- src:要复制的源数组
- srcPos:复制源数组的起始位置
- dest:目标数组
- destPos:目标数组的起始位置
- length:要复制的长度