好吧,偷一下懒,没有使用双指针去做,使用的是直接拼接排序
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
for (int i = 0; i != n; i++) {
nums1[m + i] = nums2[i];
}
Arrays.sort(nums1);
}
}
补一下吧,双指针法,因为双指针法还是比较重要的
public void merge(int[] nums1, int m, int[] nums2, int n) {
int m2 = 0, n2 = 0;
int[] resNum = new int[m + n];
int val;
while (m2 < m || n2 < n){
if (m2 == m){
val = nums2[n2++];
}else if (n2 == n){
val = nums1[m2++];
}else if (nums1[m2] < nums2[n2]){
val = nums1[m2++];
}else {
val = nums2[n2++];
}
resNum[m2 + n2 - 1] = val;
}
for (int i = 0; i < m + n; i++) {
nums1[i] = resNum[i];
}
}



