void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){
int fir = 0;
int sed = 0;
int* nums = (int*)malloc(sizeof(int)*(m+n));//分配空间
int third = 0;
while(fir < m && sed < n)
{
if(nums1[fir] < nums2[sed]){
nums[third++] = nums1[fir++];
}else{
nums[third++] = nums2[sed++];
}
}
while(fir < m)
{
nums[third++] = nums1[fir++];
}
while(sed < n)
{
nums[third++] = nums2[sed++];
}
memcpy(nums1,nums,sizeof(int)*(m+n));
free(nums);
}
88. 合并两个有序数组个人解法
最新推荐文章于 2024-10-09 09:53:23 发布
这段代码定义了一个函数voidmerge,用于合并两个已排序的整数数组nums1和nums2。它首先分配新的内存空间nums,然后通过比较nums1和nums2的元素将它们按顺序合并到nums中。当其中一个数组遍历完后,将剩余数组的元素添加到nums。最后,使用memcpy将结果复制回nums1并释放nums占用的内存。
摘要由CSDN通过智能技术生成