**问题描述:给定两个数组,编写一个函数来计算它们的交集。
示例1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
示例2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
官方解题思路:
由于问题中的元素是唯一的,所以我们只关心元素的有无,那么我们可以使用 set 这个结构。首先将 nums1 的所有数据存入 set 中,再将 nums2 的所有数组也存入 set 中,最后求交集即可。
官方解题代码:
class Solution:
def intersection(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
a = set(nums1)
b = set(nums2)
c = a & b
return list(c)
其它解题方法:
class Solution:
def intersection(self, nums1, nums2):
res = list()
if len(nums1) <= len(nums2):
small_nums = nums1
large_nums = nums2
else:
small_nums = nums2
large_nums = nums1
for i in large_nums :
if i in small_nums:
if i not in res:
res.append(i)
small_nums.remove(i)
return res
若要求输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]
则将其它解题方法中的if not i in res:去掉即可~