Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].
这道题也是先排序后比较大小的方法,同时这里运用set来避免重复的问题。
这里注意set的用法。还有set的insert函数,迭代器的用法也要熟练。
代码如下:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
set<int>s1,s2;vector<int>rel;
int n1=nums1.size();int n2=nums2.size();
for(int i=0;i<n1;i++){
s1.insert(nums1[i]);
}
for(int i=0;i<n2;i++){
s2.insert(nums2[i]);
}
set<int>::iterator it1=s1.begin();
set<int>::iterator it2=s2.begin();
for(;it2!=s2.end()&&it1!=s1.end();){
if(*it1==*it2){
rel.push_back(*it1);
it1++;it2++;
}
else if(*it1<*it2){
it1++;
}
else{
it2++;
}
}
return rel;
}
};