这个思路比较简单,想说下语法点。unordered_map是键值对,键hash,unordered_set就是一个hash集合,只是key的集合,方便快速查找的。同时set是红黑树,所以有两个很好的特点,有序,没有重复,而且O(logN)的效率也很高。这里对nums1做了一个unordered_set,就用了没重复的特性。
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> Find(nums1.begin(),nums1.end());
vector<int> res;
for(auto a:nums2)
{
if(Find.count(a))
{
res.push_back(a);
Find.erase(a);
}
}
return res;
}
};