题目给的是两个已经排好序的数组,很简单:
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int [] temp = new int [m];
for (int i = 0; i < m; i++) {
temp[i] = nums1[i];
}
int i = 0;
int j = 0;
int k = 0;
while (i < m && j < n) {
if (temp[i] < nums2[j]) {
nums1[k] = temp[i];
i++;
}
else {
nums1[k] = nums2[j];
j++;
}
k++;
}
if (!(i < m)) {
for (int p = k; j < n; j++, p++) {
nums1[p] = nums2[j];
}
}
else {
for (int p = k; i < m; i++, p++) {
nums1[p] = temp[i];
}
}
}
}