Python教程

python实现两个数组的交集II

本文主要是介绍python实现两个数组的交集II,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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/

这篇关于python实现两个数组的交集II的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!