![这里是引用](https://i-blog.csdnimg.cn/blog_migrate/2aefabb49c7d8b8a07d04ff93ce7720b.png)
int cmp(const void *a,const void *b){
return *(int*)a >*(int*)b?1:-1;
}
int* intersect(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){
if(nums1 == NULL || nums2==NULL || nums1Size==0||nums2Size==0)
{
*returnSize = 0;
return NULL;
}
int min=nums1Size<nums2Size?nums1Size:nums2Size;
int *a=(int*)malloc(sizeof(int)*min);
int index=0;
qsort(nums1,nums1Size,sizeof(int),cmp);
qsort(nums2,nums2Size,sizeof(int),cmp);
for(int i=0,j=0;i<nums1Size &&j<nums2Size;){
if(nums1[i]==nums2[j]){
a[index++]=nums1[i];
i++;
j++;
}
else if(nums1[i]>nums2[j]){
j++;
}
else i++;
}
*returnSize=index;
return a;
}