您的位置:首页 > 其它

合并排序数组——LinkCode

2015-12-14 15:31 344 查看
合并两个排序的整数数组A和B变成一个新的数组。

您在真实的面试中是否遇到过这个题?

Yes

样例

给出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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: