力扣题目链接
给定两个数组nums1和nums2,返回它们的交集。输出结果中的每个元素一定是唯一 的。我们可以不考虑输出结果的顺序。
示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2] 示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [9,4]题解 Python
时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( n ) O(n) O(n):
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
records = dict() # 记录所有出现过的数字
ans = []
for it in nums1:
if it not in records:
records[it] = 1 # 如果it出现过就将其加入到字典中
for it in nums2:
if it in records: # 此值在两个list均有出现
ans.append(it) # 将其添加到返回值
records.pop(it) # 避免此值被重复添加
return ans
时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( n ) O(n) O(n):
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
return list(set(nums1) & set(nums2)) # 直接用python自带的set



