1 题目及要求
1.1 题目描述
合并两个有序的数组,合并之后的数组也要有序
解题思路:
类似合并链表,两个指针,分别指向一个数组的头位置,比较哪一个大就将哪一个插入新数组并把该指针后移一位
2 解答
2.1 代码
#include<iostream>
#include<vector>
using namespace std;
vector<int> merge_vectors(vector<int> &v1, vector<int> &v2){
if(v1.size()==0) return v2;
else if(v2.size()==0) return v1;
vector<int> v3;
auto it1=v1.begin();
auto it2=v2.begin();
while(it1!=v1.end()&&it2!=v2.end()){
if(*it1<*it2){
v3.push_back(*it1);
it1++;
}else{
v3.push_back(*it2);
it2++;
}
}
while(it1!=v1.end()){
v3.push_back(*it1);
it1++;
}
while(it2!=v2.end()){
v3.push_back(*it2);
it2++;
}
return v3;
}
int main(){
vector<int> v1={1, 3, 5, 7, 9};
vector<int> v2={2, 4, 6, 8, 10};
vector<int> v3=merge_vectors(v1,v2);
for(auto v:v3){
cout<<v<<' ';
}
cout<<endl;
return 0;
}