题目描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200428003204233.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNTAwODMx,size_16,color_FFFFFF,t_70)
set集合
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2){
set<int> s(nums1.begin(), nums1.end());
vector<int> res;
for(int num : nums2){
if(s.erase(num)){
res.push_back(num);
}
}
return res;
}
};
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020042800303654.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNTAwODMx,size_16,color_FFFFFF,t_70)
排序 + 双指针
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2){
sort(nums1.begin(), nums1.end());
sort(nums2.begin(), nums2.end());
int i = 0;
int j = 0;
set<int> s;
while(i < nums1.size() && j < nums2.size()){
if(nums1[i] == nums2[j]){
s.insert(nums1[i]);
i++;
j++;
}else if(nums1[i] > nums2[j]){
j++;
}else{
i++;
}
}
vector<int> res(s.begin(), s.end());
return res;
}
};
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200428002831565.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNTAwODMx,size_16,color_FFFFFF,t_70)