面试or笔试4——合并两个有序数组为一个有序数组
2017-09-06 00:43
239 查看
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; }
相关文章推荐
- iOS 笔试题~两个有序数组合并成一个有序数组
- 两个有序数组合并成一个有序数组
- 百度笔试题合并a[0..mid]和a[mid+1,n-1],其中这两个数组分别有序
- java实现把两个有序数组合并到一个数组
- 4.将两个排好序的数组,合并到另外一个数组中,并且合并之后的数组也是有序的。
- 将两个排好序的数组,合并到另外一个数组中,并且合并之后的数组也是有序的。
- 【leetcode】Merge Sorted Array(合并两个有序数组到其中一个数组中)
- 将两个数组A和B合并为一个有序的C数组
- Interview Q&A - 合并两个有序数组为一个有序数组(C++)
- 将两个整型数组有序合并成一个数组
- 算法面试题——两个有序数组,将一个数组放入另一个空间很大的数组,要求合并之后依然有序,时间复杂度要求最小,不使用额外的数组。
- 合并有序的两个数字数组为一个
- 2012百度实习生笔试之合并两个有序数组
- 合并两个有序数组为一个有序数组
- leetcode:Merge Sorted Array(合并两个有序数组到其中一个数组中)【面试算法题】
- 将两个排好序的数组,合并到另外一个数组中,并且合并之后的数组也是有序的。
- 两个有序数组合并成一个有序数组
- java将两个有序数组合并成一个有序数组
- 将两个有序链表合并成一个有序链表——搜狐畅游笔试题归来
- 两个有序数组合并成一个有序数组