350. 两个数组的交集 II

88 阅读1分钟

题目: 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。

来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/in… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法:

func intersect(nums1 []int, nums2 []int) []int {
    m := make(map[int]int)
    for i := range nums1 {
        m[nums1[i]] ++            
    }

    ans := []int{}
    for i := range nums2 {
        if m[nums2[i]] > 0 {
            ans = append(ans, nums2[i])
            m[nums2[i]] --
        }
    }
    return ans
}