两个数组的交集
寻找两个数组相同的元素,注意返回元素的唯一性
对应题目349. 两个数组的交集
哈希集合
使用两个哈希集合,第一个保存前一个数组的元素,第二个集合遍历第二个数组,如果发现有相同的元素放入第二个集合中,最后因为要返回数组即将集合转化为数组即可。分析复杂度,需要遍历两个数组所以时间复杂度为\(O(M+N)\);因此相应的空间复杂度也为\(O(M+N)\)。
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> mySet(nums1.begin(),nums1.end());
/*
for(int i = 0;i < nums1.size();i++) {
mySet.insert(nums1[i]);
}
*/
unordered_set<int> result;
for(int i = 0;i < nums2.size();i ++) {
if(mySet.find(nums2[i]) != mySet.end()) {
result.insert(nums2[i]);
}
}
vector<int> a(result.begin(),result.end());
/*
for(auto &iter:result) {
a.push_back(iter);
}
or
for(auto iter = result.begin();iter != result.end();iter ++) {
a.push_back(*iter);
}
*/
return a;
}
标签:哈希,交集,iter,result,数组,nums1,nums2
From: https://www.cnblogs.com/Corleone/p/17268446.html