合并两个有序数组
问题
这个题目说的是,给你两个递增排序的数组,你要把第二个数组合并到第一个,并使其仍然保持递增排序。两个数组中的元素个数会显式地给出,并且第一个数组的大小可以容纳下两个数组中所有的元素。
比如说给你的两个数组是:
2, 4, _, _
1, 3
它们都有 2 个元素。并且第一个数组后面有足够的空间来填充第二个数组。把第二个数组合并到第一个数组后,得到的是:
1, 2, 3, 4
代码
public class AlgoCasts {
public void mergeTwoSortedArray(int[] nums1, int m, int[] nums2, int n) {
int i = m - 1, j = n - 1, k 大专栏 合并两个有序数组or">= m + n - 1;
while (i >= 0 && j >= 0) {
if (nums2[j] > nums1[i])
nums1[k--] = nums2[j--];
else
nums1[k--] = nums1[i--];
}
while (j >= 0) nums1[k--] = nums2[j--];
}
}