class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n)
{
//将nums1的前m号元素以及nums2的前n号元素取出来
vector<int>n1,n2;
int i=0,j=0;
while(i<m)
{
n1.push_back(nums1[i++]);
}
while(j<n)
{
n2.push_back(nums2[j++]);
}
i=0,j=0;
vector<int>res;
while(i<m&&j<n)
{
if(n1[i]<=n2[j])
{
res.push_back(n1[i++]);
}
else
{
res.push_back(n2[j++]);
}
}
while(i<m)
{
res.push_back(n1[i++]);
}
while(j<n)
{
res.push_back(n2[j++]);
}
i=0;
nums1.clear();
while(i<m+n)
{
nums1.push_back(res[i++]);
}
}
};
LeetCode:88. 合并两个有序数组
本文介绍了一种使用C++实现的向量合并算法,该算法将两个已排序的向量nums1和nums2合并为一个有序向量。首先,从nums1中取出前m个元素和nums2中前n个元素,分别存储到临时向量n1和n2中。然后,比较并合并这两个临时向量中的元素到结果向量res中,最后将res的内容复制回nums1。

被折叠的 条评论
为什么被折叠?



