📜  门| GATE CS Mock 2018 |第 41 题(1)

📅  最后修改于: 2023-12-03 15:42:13.127000             🧑  作者: Mango

Gate CS Mock 2018 - Question 41

题目描述

给定两个整数数组arr1和arr2,求arr1与arr2交集的元素个数。

示例
arr1 = [1, 2, 3, 4, 5]
arr2 = [2, 4, 6, 8, 10]
assert intersection_count(arr1, arr2) == 2
解题思路

要求两个数组的交集元素个数,我们可以使用集合的交集操作来实现。

其他语言应该也会有类似于Python中的集合操作,而对于Python而言,可以使用set()函数将一个列表转化为集合,也可以使用&运算符得到交集,并使用len()函数获取交集的元素个数。

解题代码
def intersection_count(arr1, arr2):
    return len(set(arr1) & set(arr2))
复杂度分析

由于Python中集合操作的时间复杂度为O(n),因此本题的时间复杂度为O(n)。而空间复杂度取决于集合的大小,因此最坏情况下的空间复杂度为O(n)。