题目描述:
先合并排序后替换1:C
先把两个有序数组合并成新的有序数组,再替换nums1。
代码:
void merge(int* nums1,int nums1Size,int n,int* nums2,int nums2Size,int m)
{
int i=0,j=0,k=0;
int *nums3=(int *)malloc(sizeof(int)*(m+n)); //新数组
while(i<n&&j<m)
{
if(nums1[i]<nums2[j])
nums3[k++]=nums1[i++];
else
nums3[k++]=nums2[j++];
}
for(i;i<n;i++)
nums3[k++]=nums1[i];
for(j;j<m;j++)
nums3[k++]=nums2[j];
for(i=0;i<(m+n);i++)
nums1[i]=nums3[i];
}