题目描述如下:
给定两个数组,编写一个函数来计算它们的交集
献上代码:
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int, int> map1;
vector<int> res;
for(auto &i : nums1)
{
map1[i]++;
}
for(auto &i : nums2)
{
if(map1.count(i))
{
res.push_back(i);
map1[i]--;
}
if(map1[i] == 0)
{
map1.erase(i);
}
}
return res;
}
};
思路如下:
利用哈希表存储arr1,其中key存储值,value存储key在arr1的出现次数。
然后在map中查找arr2,出现相同值就往res里面添加值,如此即可。
有同学对unorder_map不了解的可以参考博文:
链接: link.