【题目描述】
Given two arrays, write a function to compute their intersection.
Notice
Each element in the result should appear as many times as it shows in both arrays.
The result can be in any order.
Example
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2].
计算两个数组的交集
注意事项
1. 每个元素出现次数得和在数组里一样
2. 答案可以以任意顺序给出
样例
给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].
【题目链接】
www.lintcode.com/en/old/problem/intersection-of-two-arrays-ii/
【题目解析】
这道题是之前那道 Intersection of Two Arrays 的拓展,不同之处在于这道题允许我们返回重复的数字,而且是尽可能多的返回,之前那道题是说有重复的数字只返回一个就行。那么这道题我们用哈希表来建立nums1中字符和其出现个数之间的映射, 然后遍历nums2数组,如果当前字符在哈希表中的个数大于0,则将此字符加入结果res中,然后哈希表的对应值自减1。
【参考答案】