题目:合并两个排序的整数数组A和B变成一个新的数组。
样例
给出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 vector<int> result; int i=0,j=0; int szA=A.size(); int szB=B.size(); while(true) { if(i>=szA&&j<szB) { result.push_back(B[j++]); } else if(i<szA&&j>=szB) { result.push_back(A[i++]); } else if(i<szA&&j<szB) { if(A[i]<B[j]) { result.push_back(A[i++]); } else { result.push_back(B[j++]); } } else break; } return result; } };