class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> res;
unordered_set<int> nums(nums1.begin(),nums1.end());
for (int n : nums2) {
if (nums.find(n) != nums.end()) {
res.insert(n);
}
}
return vector<int>(res.begin(),res.end());
}
};
思路:题目中说了是唯一的所以想到用集合,unordered_set是一种哈希结构,所以直接将数组nums1转换成集合的形式,去掉重复元素,然后nums的元素与其一一比对。
知识点:学会使用增强for循环,当遍历一个数组之类的结构时,若单纯的遍历整个数组,且需要数组每个元素的值是用此循环。
find函数返回的是一个迭代器,即指针类型,如果没有找到该元素,则返回末尾的后一个。