leetcode349 350 Intersection of Two Arrays & II
Posted yawenw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode349 350 Intersection of Two Arrays & II相关的知识,希望对你有一定的参考价值。
1 """ 2 Intersection of Two Arrays 3 Given two arrays, write a function to compute their intersection. 4 Example 1: 5 Input: nums1 = [1,2,2,1], nums2 = [2,2] 6 Output: [2] 7 Example 2: 8 Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 9 Output: [9,4] 10 """ 11 """ 12 由于问题中的元素是唯一的,所以我们只关心元素的有无, 13 那么我们可以使用set这个结构。 14 首先将nums1的所有数据存入set中,查找nums2中的数据是否在这个set中, 15 如果在的话,我们将这个元素存入一个list里面。 16 """ 17 class Solution: 18 def intersection(self, nums1, nums2): 19 """ 20 :type nums1: List[int] 21 :type nums2: List[int] 22 :rtype: List[int] 23 """ 24 nums1 = set(nums1) 25 result = set() 26 for i in nums2: 27 if i in nums1: 28 result.add(i) 29 return list(result) 30 31 """ 32 Given two arrays, write a function to compute their intersection. 33 Example 1: 34 Input: nums1 = [1,2,2,1], nums2 = [2,2] 35 Output: [2,2] 36 Example 2: 37 Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 38 Output: [4,9] 39 """ 40 """ 41 发现在leetcode349这个问题的基础上, 42 我们多加了记录元素个数的功能,我们可以使用dict实现它。 43 """ 44 class Solution: 45 def intersect(self, nums1, nums2): 46 """ 47 :type nums1: List[int] 48 :type nums2: List[int] 49 :rtype: List[int] 50 """ 51 record, result = {}, [] 52 for num in nums1: 53 record[num] = record.get(num, 0) + 1 54 # dict.get(key, default=None)返回指定键的值,如果值不在字典中返回默认值None 55 #{1: 2, 2: 2} 56 for num in nums2: 57 if num in record and record[num]: 58 # num in record 里而且 对应有重复值 59 result.append(num) 60 record[num] -= 1 61 return result
以上是关于leetcode349 350 Intersection of Two Arrays & II的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode] 349 Intersection of Two Arrays & 350 Intersection of Two Arrays II
leetcode349 350 Intersection of Two Arrays & II
Leetcode 349. Intersection of Two Arrays