两个数组的交集
1.解法
将其中一个list转化为set,然后遍历另一个list,当这个list中的元素出现在set中时,就把结果存到result_set中(注意存放结果的容器是一个set)
使用python的话就很简单了,直接将两个list都转换为set,然后用&求交集就行了
代码如下:
def intersection(nums1,nums2):
num1 = set(nums1)
num2 = set(nums2)
num = list(num1 & num2)
return num
2.总结
python
-
collections.Counter:使用list()方法将该容器强制转换为list时,返回的是所有key的值
-
&:求交集
算法
-
哈希表在能使用数组的情况下不要使用set
因为直接使用set 不仅占用空间比数组大,而且速度要比数组慢,set把数值映射到key上都要做hash计算的。
不要小瞧这个耗时,在数据量大的情况,差距是很明显的。
-
当哈希值有范围时,比如哈希值是字母,那么范围就是1-26,或者题目给定某个范围了,就可以用数组来实现;当哈希值没有范围时,一般就用set或者map来实现