【leetcode】349. 两个数组的交集
文章目录
- 代码
- 1.set()
- 2. 哈希表
- 3. 数组
给定两个数组 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]
解释:[4,9] 也是可通过的
代码
1.set()
class Solution(object):def intersection(self, nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: List[int]"""# 使用set()return list(set(nums1) & set(nums2))
2. 哈希表
在这里插入代码片class Solution(object):def intersection(self, nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: List[int]"""# 使用哈希表存储一个数组中的所有元素table = {}for num in nums1:table[num] = table.get(num, 0) + 1# 使用集合存储结果res = set()for num in nums2:if num in table:res.add(num)del table[num]return list(res)
3. 数组
class Solution(object):def intersection(self, nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: List[int]"""# 使用数组list1 = [0] * 1001list2 = [0] * 1001for num in nums1:list1[num] += 1for num in nums2:list2[num] += 1result = []for k in range(1001):if list1[k] * list2[k] > 0:result.append(k)return result
参考:
代码随想录:https://programmercarl.com/