349. Intersection of Two Arrays
题目
题目很简单,求两个数列的交集。
一句话代码(效率很低)
将两个集合转换成set,求交集就完事了。(& 或 intersection)
return list(set(nums1)&(set(nums2)))
优秀代码(效率挺高)
class Solution(object):
def intersection(self, nums1, nums2): #求交集
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
num1_hash = {} # 哈希表
intersect = [] # 交集
#iterate through first list and hash values
for i in nums1: # 对于num1中的值,全部加入到哈希表中。
num1_hash[i]=False
for i in nums2:
#if value is in both lists and we haven't checked it yet
if i in num1_hash and num1_hash[i] == False:
#add to our intersection
intersect.append(i) # 取出来加入到交集中
#mark the value so we don't add duplicates to our intersection
num1_hash[i]=True #说明已经被取出了
return intersect