349. Intersection of Two Arrays
题目描述和难度
- 题目描述:
给定两个数组,写一个函数来计算它们的交集。
例子:
给定 num1= [1, 2, 2, 1]
, nums2 = [2, 2]
, 返回 [2]
.
提示:
- 每个在结果中的元素必定是唯一的。
- 我们可以不考虑输出结果的顺序。
- 题目难度:简单。
- 英文网址:349. Intersection of Two Arrays 。
- 中文网址:349. 两个数组的交集 。
思路分析
求解关键:注意题目要求“每个在结果中的元素必定是唯一的”,设计一个 set
判断元素是否出现过,如果已经出现过,(1)先记录到最后返回的结果中;(2)从 set
中删除,以免 nums2 中重复的记录被记录。
参考解答
参考解答1
class Solution:
def intersection(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
result = []
# 去重
s = set(nums1)
for num in nums2:
if num in s:
result.append(num)
# 发现一样的元素以后,就从 set 里删除,可以避免重复
s.remove(num)
return result
本篇文章的地址为 https://liweiwei1419.github.io/leetcode-solution/leetcode-0349-intersection-of-two-arrays ,如果我的题解有错误,或者您有更好的解法,欢迎您告诉我 liweiwei1419@gmail.com 。