题目:
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> numSet1{nums1.begin(),nums1.end()};
unordered_set<int> result;
for(auto it:nums2)
{
// 这一句这么写的原因是 find() ,如果容器中有it这个元素,则返回第一个
// 关键字为it的元素,否则返回尾后迭代器
if(numSet1.find(it) !=numSet1.end())
{
// 如果不返回尾后迭代器,则说明有对应对元素相等
result.insert(it);
}
}
// 注意:如果result使用vector容器的话,一定会出错的,因为vector容器允许重复元素出现
// 但函数返回类型为vector容器,此时就需要重新声明以及直接初始化啦~
return vector<int>{result.begin(),result.end()};
}
};