归并2个指定size的排序数组
// 88 Merge Sorted Array
void solution::merge(vector<int>& nums1, int m, vector<int>& nums2, int n)
{
vector<int> result;
vector<int>::const_iterator it1 = nums1.cbegin();
vector<int>::const_iterator it1end = nums1.cbegin() + m;
vector<int>::const_iterator it2 = nums2.cbegin();
vector<int>::const_iterator it2end = nums2.cbegin() + n;
while (it1 != it1end || it2 != it2end)
{
if (it1 != it1end && it2 != it2end)
{
if (*it1 > *it2)
{
result.push_back(*it2);
++it2;
continue;
}
else
{
result.push_back(*it1);
++it1;
continue;
}
}
else
{
if (it1 == it1end)
{
result.push_back(*it2);
++it2;
continue;
}
else
{
result.push_back(*it1);
++it1;
continue;
}
}
}
nums1 = result;
}
之前审题还审错了,写了一个归并完整大小的数组
// 归并2个数组
void solution::merge(vector<int>& nums1, vector<int>& nums2){
vector<int> result;
vector<int>::const_iterator it1 = nums1.cbegin();
vector<int>::const_iterator it2 = nums2.cbegin();
while (it1 != nums1.cend() || it2 != nums2.cend())
{
if (it1 != nums1.cend() && it2 != nums2.cend())
{
if (*it1 > *it2)
{
result.push_back(*it2);
++it2;
continue;
}
else
{
result.push_back(*it1);
++it1;
continue;
}
}
else
{
if (it1 == nums1.cend())
{
result.push_back(*it2);
++it2;
continue;
}
else
{
result.push_back(*it1);
++it1;
continue;
}
}
}
nums1 = result;
}