class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { unordered_set<int> result_set; // 存放结果,之所以用set是为了给结果集去重 unordered_set<int> nums_set(nums1.begin(), nums1.end()); for (int num : nums2) { // 发现nums2的元素 在nums_set里又出现过 if (nums_set.find(num) != nums_set.end()) { result_set.insert(num); } } return vector<int>(result_set.begin(), result_set.end()); } };
时间: 2024-04-19 11:26:57 浏览: 226
mil-intersection-observer:Lit 元素的交叉点观察器
这是一个求两个数组的交集的问题。这段代码定义了一个名为`Solution`的类,其中有一个公有成员函数`intersection`,它接受两个整数数组`nums1`和`nums2`作为参数,并返回一个整数数组作为结果。
在函数内部,首先创建了一个无序集合`result_set`,用于存放结果。然后使用`nums1`数组初始化了另一个无序集合`nums_set`。
接下来,通过遍历`nums2`数组中的每个元素,检查该元素是否存在于`nums_set`集合中。如果存在,则将该元素插入到`result_set`集合中。
最后,将`result_set`集合转换为一个整数数组,并返回结果。
注意,这段代码使用了无序集合来实现去重的功能,确保结果集中不会包含重复的元素。
阅读全文