349 两个数组的交集
题目
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [9,4]
说明:
- 输出结果中的每个元素一定是唯一的。
- 我们可以不考虑输出结果的顺序。
方案
1、题目本身不考虑效率的话,特别简单,两个for循环加去重即可搞定,如方案一。但是效率真的好低好低。利用python3耗时140ms。不忍直视。果然for循环的效率及其低下。另外,有在找到元素后将其从两个列表中删除,减少循环次数,但是执行时间仍不理想。
2、方案二较方案一轻便,且耗时80ms,效率已经有极大提升。
代码
方案一:
class Solution:
def intersection(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
temp = []
for i in nums1:
for j in nums2:
if i == j:
temp.append(i)
return list(set(temp))
方案二:
class Solution:
def intersection(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
return list(set(nums1) & set(nums2))