合并两个有序数组
题目
思路
创建一个临时数组、两个指针分别指向两个有序数组,开始比较,小的放入temp中,指针++,直到其中一个指针走完
代码实现
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{int a[m+n];int n1=0,n2=0,i=0;while(n1<m && n2<n){if(nums1[n1]<=nums2[n2]){a[i]=nums1[n1];n1++;}else{a[i]=nums2[n2];n2++;}i++;}//其中一个走完后,要把另一个数组剩下的接到尾上while(n1<m)//不知是谁走完了,就两个都遍历一次{a[i]=nums1[n1];i++;n1++;}while(n2<n){a[i]=nums2[n2];i++;n2++;}memcpy(nums1,a,(m+n)*sizeof(int));
}