给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]
说明:
- 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
- 我们可以不考虑输出结果的顺序。
解答:
利用collections Counter及set转换集合解答
def intersect( nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: List[int] """ b=[] from collections import Counter dic1=Counter(nums1) dic2=Counter(nums2) if len(nums1)<=len(nums2): a=list(set(nums1)) # 集合转列表,这样列表里面的元素只要判断一次,不用重复判断 else: a=list(set(nums2)) for i in range(len(a)): if a[i] in dic1 and a[i] in dic2: if dic1[a[i]]<dic2[a[i]]: s=dic1[a[i]] else: s=dic2[a[i]] for j in range(s): b.append(a[i]) return b