主要是要注意m和n的含义。m和n表示排好序的部分的长度。
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n)
{
// 两个数组倒着比,从后往前填充
int i = m - 1, j = n - 1;
int index = m + n - 1;
while(i >= 0 && j >= 0)
{
if(nums1[i] > nums2[j])
nums1[index] = nums1[i--];
else
nums1[index] = nums2[j--];
index --;
}
while(i >= 0)
nums1[index--] = nums1[i--];
while(j >= 0)
nums1[index--] = nums2[j--];
}
本文介绍了一种将两个已排序数组合并为一个新排序数组的方法。该方法通过从后向前比较两个数组中的元素,并将较大的元素放入目标数组的末尾,从而实现两数组的高效合并。
559

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



