合并两个排序的整数数组A和B变成一个新的数组。
样例
给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]
挑战
class Solution {
你能否优化你的算法,如果其中一个数组很大而另一个数组很小?
/**
* @param A and B: sorted integer array A and B.
* @return: A new sorted integer array
*/
public int[] mergeSortedArray(int[] A, int[] B) {
// Write your code here
if(A.length==0)
return B;
if(B.length==0)
return A;
int lenA = A.length;
int lenB = B.length;
int[] merge = new int[lenA+lenB];
int i=0;
int j=0;
int k =0;
while(i<lenA && j<lenB){
if(A[i]<B[j]){
merge[k] = A[i];
i++;
k++;
}
else{
merge[k] = B[j];
j++;
k++;
}
}
while(i<lenA){
merge[k] = A[i];
i++;
k++;
}
while(j<lenB){
merge[k] = B[j];
j++;
k++;
}
return merge;
}
}