题目要求:
合并两个排序的整数数组A和B变成一个新的数组。
样例
给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]
挑战
你能否优化你的算法,如果其中一个数组很大而另一个数组很小?
代码实现:
使用vector、和其中的push_back函数
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> C; //定义vector动态数组
int i = 0, j = 0;
while(i<A.size() && j<B.size())
{
if(A[i]<B[j])
{
C.push_back(A[i++]); //在vector数组末尾插入新元素
} //++在后,得到递增之前的结果;++在前,得到递增之后的结果
else
{
C.push_back(B[j++]);
}
}
while(i<A.size())
{
C.push_back(A[i++]);
}
while(j<B.size())
{
C.push_back(B[j++]);
}
return C;
}
};