LintCode 6 合并排序数组

阅读: 评论:0

LintCode 6 合并排序数组

LintCode 6 合并排序数组

题目:mergeSortedArray


要求:

合并两个排序的整数数组A和B变成一个新的数组。

样例:

给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]

算法要求:

你能否优化你的算法,如果其中一个数组很大而另一个数组很小?

解题思路:

使用迭代器遍历2个数组,如果A的迭代器比B中的小,则存入第三个数组,并将A的迭代器迭代一次,否则将B的迭代器存入第三个数组,并将迭代器迭代一次(这里的迭代器可以理解成指针或者游标)。如果某个迭代器先迭代完成,则只需要将剩下的都存入到第三个数组中即可。

算法如下:

    vector<int> mergeSortedArray(vector<int> &A, vector<int> &B) {vector<int>::iterator itA = A.begin();vector<int>::iterator itB = B.begin();vector<int> C;while (itA != A.end() && itB != B.end()) {if(*itA < *itB) {C.push_back(*itA);itA++;} else {C.push_back(*itB);itB++;}}while(itA != A.end()) {C.push_back(*itA);itA++;}while(itB != B.end()) {C.push_back(*itB);itB++;}return C;}

本文发布于:2024-02-04 23:57:55,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170719344260940.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数组   LintCode
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23