题目:
思路:
1.题意简明扼要即求两个数组的交集,并输出且不考虑顺序。此时我们想到了哈希表我首先用unordered_map和vector,但这个有缺点开辟数组需要占据很大的空间并且要写一行代码去重,如下:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int,int> intCount;
vector<int> intfind;
for(int &i:nums1){
intCount[i]++;
}
for(int &i:nums2){
if(intCount.count(i) != 0 && intCount[i]>0){
intfind.push_back(i);
intCount[i]=0;
}
}
return intfind;
}
};
2.使用两个unordered_set可以不用自己设置大小,并且自动去重,很方便
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> set1(nums1.begin(),nums1.end());
unordered_set<int> set2;
for(int i: nums2){
if(set1.count(i)){
set2.insert(i);
}
}
return vector<int>(set2.begin(), set2.end());
}
};