首先我们可以将nums1存入哈希表中,之后将num2与哈希表进行匹配,如果有重复数字,就将重复数字存入我们的result数组中,不要忘记,要将哈希表里的重复数字置0,这样只会输出一次
int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){
int n1[1005]={0};
int lessSize = nums1Size < nums2Size ? nums1Size : nums2Size;
int * result = (int *) calloc(lessSize, sizeof(int));
int resultIndex = 0;
int* tempNums;
int i;
for(i=0;i<nums1Size;i++){
n1[nums1[i]]++;
}
for(i=0;i<nums2Size;i++){
if(n1[nums2[i]]>0){
result[resultIndex]=nums2[i];
resultIndex++;
n1[nums2[i]]=0;
}
}
* returnSize = resultIndex;
return result;
}