349. 两个数组的交集
给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的
这题其实也比较简单,我们设置一个辅助数组就可以解决问题:
解题代码如下:
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){
int* a=(int* )malloc(sizeof(int)*1000);
int* b=(int* )malloc(sizeof(int)*1000);
int i=0;
for(i=0;i<1000;i++){
a[i]=0;
}
for(i=0;i<nums1Size;i++){
if(a[nums1[i]]==0){
a[nums1[i]]=1;
}
}
int p=0;
for(i=0;i<nums2Size;i++){
if(a[nums2[i]]==1){
a[nums2[i]]++;
b[p++]=nums2[i];
}
}
*returnSize=p;
return b;
}