合并两个排序的整数数组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 len = A.length + B.length;
int[] a = new int[len];
int i,j = 0,k = 0;
for(i=0;i<len;i++)
{
if(A[j] <= B[k])
a[i] = A[j++];
else if (A[j] > B[k]) {
a[i] = B[k++];
}
if(j == A.length || k == B.length)
break;
}
i++;
if(j == A.length)
while(k != B.length)
a[i++] = B[k++];
if(k == B.length)
while(j != A.length)
a[i++] = A[j++];
return a;
}
}