题目:
Given two sorted integer arrays
nums1
and
nums2
, merge
nums2
into
nums1
as one sorted array.
将两个排序数组合并为一个数组,时间复杂度要求O(m+n),空间复杂度要求O(1)
借助排序数组nums1,后序插入
public void merge(int[] nums1, int m, int[] nums2, int n) {
int num = m+n-1;
m--;
n--;
while(n>=0&&m>=0)
{
nums1[num--]=nums1[m]>=nums2[n]?nums1[m--]:nums2[n--];
}
while(n>=0)
{
nums1[num--]=nums2[n--];
}
}