题目描述
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.
代码
public static int help(int[] nums, int k) {
if (k < 0) {
return Integer.MIN_VALUE;
}
return nums[k];
}
public static void merge(int[] nums1, int m, int[] nums2, int n) {
if (nums1 == null || nums2 == null) {
return;
}
int t = m + n - 1;
while (t >= 0) {
int n1 = help(nums1, m - 1);
int n2 = help(nums2, n - 1);
if (n1 > n2) {
nums1[t] = n1;
m--;
} else {
nums1[t] = n2;
n--;
}
t--;
}
}