合并数组数组:
点我.
解题思路:
从后往前处理,因为两个数组都是有序的,从nums1和nums2中先将最大的数挑出来插入到目标数组,这样目标数组的后index就已经可以确定是有序的了,已经是最大了,最后判断哪个数组还剩元素就继续插入在目标数组中
时间复杂度是O(N)
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){
int i = m - 1, j = n - 1, index = m + n - 1;
while(i >= 0 && j >= 0)
nums1[index--] = nums1[i] > nums2[j] ? nums1[i--] : nums2[j--];
while(j >= 0)
nums1[index--] = nums2[j--];
}