题目:
代码:
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
if(nums1==null||nums2==null||nums1.length==0||nums2.length==0){
return;
}
int[] temp=new int[m+n];
int index=0;
int l=0,r=0;
while(true){
// 先判断,防止nums1是{0},m=0
if(l==m||r==n){
break;
}
if(nums1[l]<=nums2[r]){
temp[index]=nums1[l];
index++;
l++;
}else{
temp[index]=nums2[r];
index++;
r++;
}
}
if(l==m){
while(r!=n){
temp[index++]=nums2[r++];
}
}else{
while(l!=m){
temp[index++]=nums1[l++];
}
}
// 注意,方法传入的是引用,不能直接令nums1=temp;
for (int i = 0; i < m+n; i++) {
nums1[i]=temp[i];
}
}
}