python实现两个数组的交集II

LeetCode- 两个数组的交集II

题目描述

给定两个数组,编写一个函数来计算它们的交集。

示例一:
python实现两个数组的交集II
示例二:
python实现两个数组的交集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/

上一篇:C++代码算法题:(4).寻找两个正序数组的中位数


下一篇:算法----合并两个有序数组