求二个数组的交集:遍历数组nums1,将其中的元素放入hash表,hash表的键值为数组元素,属性值为出现的次数;
遍历数组nums2,同时查询hash表,输出满足要求的数组元素。
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int,int> table;
for(int i=0;i<nums1.size();i++)
{
if(table.find(nums1[i])==table.end())
table[nums1[i]]=1;
else
table[nums1[i]]++;
} //add element into the table
unordered_map<int,int> res=table;
vector<int> ans;
for(int i=0;i<nums2.size();i++)
{
if(table.find(nums2[i])!=table.end())
{
if(table[nums2[i]]>0)
ans.push_back(nums2[i]);
table[nums2[i]]--;
}
}
return ans;
}
};