這個思路比較簡單,想說下語法點。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;
}
};