LeeCode
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int,int> mp1,mp2;
for(int i=0;i<nums1.size();i++) mp1[nums1[i]]++;
for(int i=0;i<nums2.size();i++) mp2[nums2[i]]++;
vector<int> res;
for(int i=0;i<nums1.size();i++) {
if(mp2[nums1[i]]!=0) res.push_back(nums1[i]);
}
set<int> aa(res.begin(),res.end());
res.assign(aa.begin(),aa.end());
return res;
}
350. 两个数组的交集 II
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int ,int >mp1,mp2;
for(int i=0;i<nums1.size();i++) mp1[nums1[i]]++;
for(int i=0;i<nums2.size();i++) mp2[nums2[i]]++;
vector<int> res;
for(int i=0;i<nums1.size();i++){
if(mp2[nums1[i]]==mp1[nums1[i]]) res.push_back(nums1[i]);
else if(mp2[nums1[i]]!=0&&count(res.begin(),res.end(),nums1[i])<min(mp1[nums1[i]],mp2[nums1[i]]))
res.push_back(nums1[i]);
}
return res;
}