350. Intersection of Two Arrays II
问题描述
解决方案
我的方法
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int,int> mi1,mi2;
vector<int> vi;
for(auto &num:nums1)
{
mi1[num]++;
}
for(auto &num:nums2)
{
mi2[num]++;
}
for(unordered_map<int,int>::iterator iter=mi1.begin();iter!=mi1.end();++iter)
{
int i=0;
if(mi2.count(iter->first)>0)
{
i=min(mi1[iter->first],mi2[iter->first]);
while(i--)
{
vi.push_back(iter->first);
}
}
}
return vi;
}
};
别人的
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int, int> dict;
vector<int> res;
for(int i = 0; i < (int)nums1.size(); i++) dict[nums1[i]]++;
for(int i = 0; i < (int)nums2.size(); i++)
if(--dict[nums2[i]] >= 0) res.push_back(nums2[i]);
return res;
}
};
作者:弦断
出处:http://www.cnblogs.com/ucas/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。