合并排序数组
public int[] mergeSortedArray(int[] A, int[] B) {
// write your code here
int a = A.length;
int b = B.length;
if(A == null && B != null){
return B;
}
if(A != null && B == null){
return A;
}
if(A == null && B == null){
return null;
}
int[] C = new int[a + b];
int k = 0, j = 0;
for(int i = 0; i < C.length; i++){
if(k > a - 1 && j <= b - 1){
C[i] = B[j];
j++;
}else if(k <= a - 1 && j > b -1){
C[i] = A[k];
k++;
}else if(k <= a - 1 && j <= b -1){
if(A[k] > B[j]){
C[i] = B[j];
j++;
}else{
C[i] = A[k];
k++;
}
}
}
return C;
}
复制代码
解题思路:
首先创建一个数组C,容量是A+B
然后进行for循环对数组C进行赋值
判断A数组是否赋值完成,如果完成则赋值B数组
同理判断B数组是否完成,如果完成则赋值A数组
如果都没有完成,则进行比较A,B数组对应游标下的值,进行赋值,同时游标下移