国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

LintCode 6 合并排序數(shù)組

2019-11-08 20:08:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

題目:mergeSortedArray


要求:

合并兩個(gè)排序的整數(shù)數(shù)組A和B變成一個(gè)新的數(shù)組。

樣例:

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

算法要求:

你能否優(yōu)化你的算法,如果其中一個(gè)數(shù)組很大而另一個(gè)數(shù)組很小?

解題思路:

使用迭代器遍歷2個(gè)數(shù)組,如果A的迭代器比B中的小,則存入第三個(gè)數(shù)組,并將A的迭代器迭代一次,否則將B的迭代器存入第三個(gè)數(shù)組,并將迭代器迭代一次(這里的迭代器可以理解成指針或者游標(biāo))。如果某個(gè)迭代器先迭代完成,則只需要將剩下的都存入到第三個(gè)數(shù)組中即可。

算法如下:

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; }
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 子长县| 方山县| 周宁县| 邢台县| 永新县| 湟源县| 四会市| 梨树县| 大埔区| 徐水县| 隆尧县| 邵阳县| 黑河市| 昌平区| 元谋县| 石嘴山市| 天津市| 定兴县| 大丰市| 三江| 浦城县| 西吉县| 永康市| 醴陵市| 新闻| 平定县| 大同市| 建平县| 奉贤区| 丰顺县| 巢湖市| 邯郸市| 阳泉市| 南部县| 柳江县| 黄龙县| 蓝田县| 鄯善县| 玉屏| 温泉县| 张家口市|