题意理解:
合并两个已排序数组;
题目分析:
1. 典型合并算法;
2. 注意当某一数元素在新的排列中已排列完的边界情况处理;
解题代码:
public class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int len=m+n;
int cnt1=m;
int index2=0;
for(int i=0; i<len ;i++){
if(index2>=n){
// System.out.println("1-nums2[index2]= "+nums2[index2]);
break;
}
// System.out.println("2-nums2[index2]= "+nums2[index2]);
if(cnt1<=0){
// System.out.println("3-nums2[index2]= "+nums2[index2]);
for(int x=i; x<len; x++){
nums1[x]=nums2[index2];
index2++;
}
break;
}
if(nums1[i]<=nums2[index2]){
// System.out.println("4-nums2[index2]= "+nums2[index2]);
cnt1--;
}else{
for(int j=len-1; j>i; j--){
nums1[j]=nums1[j-1];
}
nums1[i]=nums2[index2];
index2++;
// System.out.println("5-nums2[index2]= "+nums2[index2]);
}
}
//return nums1;
}
}