【leetcode】88. Merge Sorted Array (easy)

本文介绍了一种将两个已排序的整数数组归并为一个排序数组的方法。提供了两种实现方式:一种是针对指定大小的数组进行归并,另一种则是对整个数组进行归并。通过迭代比较两个数组元素的大小来构建新的排序数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


归并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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值