目录
一、349.两个数组的交集
二、350.两个数组的交集II
一、349.两个数组的交集
349. 两个数组的交集 - 力扣(LeetCode)
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
//排序+去重
set<int> s1(nums1.begin(),nums1.end());
set<int> s2(nums2.begin(),nums2.end());
vector<int>ret;
set<int>::iterator it1 = s1.begin();
set<int>::iterator it2 = s2.begin();
while(it1!=s1.end()&&it2!=s2.end())
{
if(*it1 == *it2)
{
ret.push_back(*it1);
it1++;
it2++;
}
//谁小谁先++
else if(*it1 < *it2)
{
it1++;
}
else
{
it2++;
}
}
return ret;
}
};
二、350.两个数组的交集II
350. 两个数组的交集 II - 力扣(LeetCode)
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
//排序
multiset<int> s1(nums1.begin(),nums1.end());
multiset<int> s2(nums2.begin(),nums2.end());
vector<int>ret;
multiset<int>::iterator it1 = s1.begin();
multiset<int>::iterator it2 = s2.begin();
while(it1!=s1.end()&&it2!=s2.end())
{
if(*it1 == *it2)
{
ret.push_back(*it1);
it1++;
it2++;
}
else if(*it1 < *it2)
{
it1++;
}
else
{
it2++;
}
}
return ret;
}
};