LeetCode- 两个数组的交集II
题目描述
给定两个数组,编写一个函数来计算它们的交集。
示例一:
示例二:
说明:
- 输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。
- 我们可以不考虑输出结果的顺序。
思路说明
分别统计出两个列表中,各个数字出现的次数,然后,找出他们*同存在且次数也相等的数字,即为两个数组的交集。
详见代码。欢迎大家批评指正。
代码实现
class Solution(object):
def intersect(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
a = Counter(nums1)#Counter():可用来统计本题中数字出现的次数,最终数据为字典格式,key为数字,value为数字出现的次数。
b = Counter(nums2)
c = dict(a & b)# 获取到a和b之间相等的键值对
result = []
for key, value in c.items():
for i in range(value):
result.append(key)
return result
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/