> For the complete documentation index, see [llms.txt](https://nataliekung.gitbook.io/ladder_code/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nataliekung.gitbook.io/ladder_code/qiang-hua-4-shuang-zhi-zhen-ff09/intersection-of-two-arrays-ii.md).

# 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
```
