算法_哈希表_两个数组的交集

两个数组的交集

leetcode链接

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

  1. collections.Counter:使用list()方法将该容器强制转换为list时,返回的是所有key的值

  2. &:求交集

算法

  1. 哈希表在能使用数组的情况下不要使用set

    因为直接使用set 不仅占用空间比数组大,而且速度要比数组慢,set把数值映射到key上都要做hash计算的。

    不要小瞧这个耗时,在数据量大的情况,差距是很明显的。

  2. 当哈希值有范围时,比如哈希值是字母,那么范围就是1-26,或者题目给定某个范围了,就可以用数组来实现;当哈希值没有范围时,一般就用set或者map来实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值