题目:
合并两个排序的整数数组A和B变成一个新的数组。新数组也要有序。
样例 1:
输入: A=[1], B=[1]
输出:[1,1]
样例解释:
返回合并后的数组。
样例 2:
输入: A=[1,2,3,4], B=[2,4,5,6]
输出: [1,2,2,3,4,4,5,6]
样例解释:
返回合并后的数组。
挑战
你能否优化你的算法,如果其中一个数组很大而另一个数组很小
代码实现
class Solution {
public:
/**
* @param A: sorted integer array A
* @param B: sorted integer array B
* @return: A new sorted integer array
*/
vector<int> mergeSortedArray(vector<int> &A, vector<int> &B) {
// write your code here
int l = A.size() + B.size();
int i,j,k;
i = j = k = 0;
vector<int> C(l);
while(l--){
if(A[i]<=B[j] && i<A.size())
C[k++] = A[i++];
else if(A[i]>B[j] && j<B.size())
C[k++] = B[j++];
}
while(i<A.size())
C[k++] = A[i++];
while(j<B.size())
C[k++] = B[j++];
return C;
}
};