Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].
寻找两个数组的交叉元素,并且不能重复。
不能重复的话,首先想到set。先把一个数组的元素放进set,此时set里面的元素是去重的,然后遍历另外一个数组,看是否在set里面,如果在,则将这个这个元素放进set。最后,把set里面的元素放进vector返回。
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
set<int> n1,n2,re1;
vector<int> res;
set<int>::iterator it;
for (int i=0;i<nums1.size();i++)
n1.insert(nums1[i]);
for (int i=0;i<nums2.size();i++)
{
it=n1.find(nums2[i]);
if (it != n1.end())
re1.insert(*it);
}
it = re1.begin();
while(it != re1.end())
{
res.push_back(*it);
it++;
}
return res;
}
};