目录
- 1.解题思路
- 2.代码实现
1.解题思路
另开辟一个大小为m+n的数组再利用双指针判断两个指针的大小,将小值赋给数组上并给该数组的下标加一和该指针加一,其次,要判断两个数组是否已经被拷贝完,如果其中一个已经到头,那么剩下的空间则全部由另外数组拷贝.然后再将此数组拷贝到原数组上.
2.代码实现
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{int* nums=(int *)malloc(sizeof(int)*(n+m));int left=0;int right=0;int data=0;while(data<(m+n)){ if(left==m){while(right<n){nums[data++]=nums2[right++];}break;}if(right==n){while(left<m){nums[data++]=nums1[left++];}break;}if(nums1[left]<=nums2[right]){nums[data++]=nums1[left++];}else{nums[data++]=nums2[right++];}}
for(int i=0;i<m+n;i++)
{nums1[i]=nums[i];}}
结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!