乍一看这题好像挺简单,但我写的时候也出现了很多问题。终究还是自己太菜了。
我最后是使用的哈希表来解决,因为测试用例中没有出现负数,所以可行(对我来说),创建两个哈希表,最后值只要不为0就代表一定为交集
3.代码实现int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){ //创建两个哈希表 int hamps1[1000]; int hamps2[1000]; //跑一遍,让里面的数全为0 for(int i=0;i<1000;i++) { hamps1[i]=0; hamps2[i]=0; } //指定位置赋值 for(int i=0;i4.总结nums2Size) { maxlong=nums1Size; } else { maxlong=nums2Size; } int *array=malloc(sizeof(int)*maxlong); //然后遍历哈希表就行,只要相同位置数不为0,就代表一定有交集 int count=0; for(int i=0;i<1000;i++) { if(hamps1[i]!=0&&hamps2[i]!=0) { array[count]=i; count++; } } *returnSize=count; return array; }
昨天期末考试结束,看了一晚上c++,结果回了宿舍没有控制住自己,和舍友吹了一晚上牛逼。
导致这个题昨天一晚上也没做出来,罪过罪过
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)