【leetcode】两个数组的交集 II

int cmp(const void* a,const void* b){
    return *(int*)a > *(int*)b;
}
int* intersect(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){
    if (!nums1Size || !nums2Size){
        *returnSize=0;
        return NULL;
    }
    qsort(nums1,nums1Size,sizeof(int),cmp);
    qsort(nums2,nums2Size,sizeof(int),cmp);

    int i=0,j=0,pst=0;
    while(i<nums1Size && j<nums2Size)
    {
        if (nums1[i] > nums2[j]) j++;
        else if (nums1[i] < nums2[j]) i++;
        else{
            nums2[pst++]=nums1[i];
            i++,j++;
        }
    }
    *returnSize=pst;
    return nums2;
}
原文地址:https://www.cnblogs.com/ganxiang/p/13728238.html