给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。
上代码

int* intersect(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){
    int table[1001];
    int count=0;
    int* ans=(int*)malloc(sizeof(int)*nums2Size);
    memset(table,0,sizeof(table));
    for(int i=0;i<nums1Size;i++){
        table[nums1[i]]+=1;
    }
    for(int i=0;i<nums2Size;i++){
        if(table[nums2[i]]>0){
            ans[count++]=nums2[i];
            table[nums2[i]]-=1;
        }
    }
    *returnSize=count;
    return ans;
}

m42wihoy.png

最悲催的一次
m42wiqqw.png

最后修改:2024 年 11 月 29 日
如果觉得我的文章对你有用,请随意赞赏