面试or笔试4——合并两个有序数组为一个有序数组

来源:互联网 发布:绵阳装修网络 编辑:程序博客网 时间:2024/06/05 12:06

题目及要求

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;}


原创粉丝点击