1.代码展示
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
int l1 = m - 1;
int l2 = n - 1;
int l3 = m + n - 1;
while(l1 >= 0 && l2 >= 0)
{
if(nums2[l2] >= nums1[l1])
{
nums1[l3--] = nums2[l2--];
}
else
{
nums1[l3--] = nums1[l1--];
}
}
while(l2 >= 0)
{
nums1[l3--] = nums2[l2--];
}
}
2.思路解析
核心思路是倒序放置,并且判断L1与L2哪一个先跳出循环,最后判断完成,nums1数组存储的就是正确答案