// C
#include <stdio.h>
#include <stdlib.h>
int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize)
{
if((nums1Size <= 0) || (nums2Size <= 0)) {
*returnSize = 0;
return NULL;
}
int hash[10000] = {0};
for(int i = 0; i < nums1Size; i++) {
hash[nums1[i]] = 1;
}
int arr[1000];
int cnt = 0;
for(int j = 0; j < nums2Size;j++) {
if(hash[nums2[j]] == 1){
arr[cnt] = nums2[j];
cnt++;
hash[nums2[j]] = 0;
}
}
*returnSize = cnt;
int *res = (int* )malloc(sizeof (int) * cnt);
for(int m = 0; m < cnt; m++) {
res[m] = arr[m];
}
return res;
}
int main(void)
{
int nums1[] = {1,8,2,1};
int nums2[] = {2,8};
int ret = 0;
int* retArr = malloc(1000);
retArr = intersection(nums1,sizeof(nums1)/sizeof(nums1[0]),nums2,sizeof (nums2)/sizeof (nums2[0]),&ret);
for(int i = 0; i < ret; i ++){
printf("%d ", *(retArr+i));
}
return 0;
}
349. 两个数组的交集
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 空间换时间,hash表2次遍历(Python) 潇洒解法:利用Python的set数据结构,完成交集操作 啰嗦解法...