这个题是第一回做!
用指针
可以创新数组,但是题目的意思应该是就放在第一个数组里就可以了。
条件只要有一个还没到头就得继续,把剩下一个遍历完放进去。
注意要else,不然空指针。
就是判断是否等于-1啦
public void merge(int[] nums1, int m, int[] nums2, int n) {
int i = m - 1;
int j = n - 1;
int k = m +n-1;
while (i >= 0 || j >= 0) {
if(i==-1){
nums1[k]=nums2[j];
j--;
}
else if(j==-1) {
nums1[k]=nums1[i];
i--;
}
else if (nums1[i] > nums2[j]) {
nums1[k] = nums1[i];
i--;
} else {
nums1[k] = nums2[j];
j--;
}
k--;
}
}