Intersection of Two Arrays II

Given two arrays, write a function to compute their intersection.

Example 1:

Input: 
nums1 = 
[1,2,2,1]
, nums2 = 
[2,2]
Output: 
[2,2]

Example 2:

Input: 
nums1 = 
[4,9,5]
, nums2 = 
[9,4,9,8,4]
Output: 
[4,9]

Note:

  • Each element in the result should appear as many times as it shows in both arrays.

  • The result can be in any order.

分析

用counter intersection 或者双指针

class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
        # a,b = map(collections.Counter,(nums1,nums2))
        # return list((a&b).elements())
        mm = collections.Counter(nums1)
        res = []
        for i in nums2:
            if i in mm and mm[i]>0:#记得这里光是In不够
                res.append(i)
                mm[i] -= 1
        return res

Last updated