20170909_合并两个有序数组
//合并两个有序列表_美团点评
/*
输入:[1,3,4,5,8,9]和[2,6,7,10,12,13,15]
输出:[1,2,3,4,5,6,7,8,9,10,12,13,15]
*/
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class Solution
{
public:
vector<int> MergeArray(const vector<int> &numA, const vector<int> &numB)
{
int szNumA=numA.size();
int szNumB=numB.size();
if(szNumA==0)
return numB;
if(szNumB==0)
return numA;
vector<int> res(szNumA+szNumB,0);
int i=0, j=0;
int k=0;
for(i=0, j=0; i<szNumA && j<szNumB; )
{
if(numA[i]<numB[j])
res[k++]=numA[i++];
else
res[k++]=numB[j++];
}
while(i<szNumA)
res[k++]=numA[i++];
while(j<szNumB)
res[k++]=numB[j++];
return res;
}
};
int main(void)
{
int A[]={1,3,4,5,8,9};
/*int B[]={2,6,7,10,12,13,15};*/
//int B[]={2,3,4,5,6,7,10,12,13,15};
int B[]={2};
vector<int> numA(begin(A),end(A));
vector<int> numB(begin(B),end(B));
class Solution object;
vector<int> res=object.MergeArray(numA, numB);
for(auto mem:res)
cout<<mem<<",";
cout<<endl;
system("pause");
return 0;
}