思路:因为nums1的空间>= m+n,故可以用三个指针, k = m+n-1, i = m - 1, j = n - 1,操作都在数组nums1上进行,最后再把nums2中剩余的元素拷贝到nums1中即可。
Java代码如下:
public void merge(int[] nums1, int m, int[] nums2, int n) { int k = m + n - 1, i = m - 1, j = n - 1; while (i >= 0 && j >= 0) { nums1[k--] = nums1[i] > nums2[j] ? nums1[i--] : nums2[j--]; } while (j >= 0) { nums1[k--] = nums2[j--]; } }