class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { unordered_set<int> result_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-12 09:33:02 浏览: 105
c++构建倒排索引并搜索
5星 · 资源好评率100%
在给出的代码中,`intersection`函数用于找到两个向量`nums1`和nums2`的交集,并将结果向量的形式返回。
代码中并没有明确考虑哪个集合中的元素数量多。它只是将`nums1`中的元素存储在`nums_set`中,然后遍历`nums2`的元素,检查它们是否在`nums_set`中出现过,如果出现过,则将其插入到`result_set`中。
因此,代码中的逻辑是基于元素是否在`nums_set`中出现过来判断是否为交集的一部分,而不是根据集合的大小来判断。
如果你想考虑哪个集合中的元素数量多,可以在代码中添加额外的逻辑。例如,你可以比较两个集合的大小,然后根据情况选择遍历元素较少的集合,以提高效率。这取决于具体的应用场景和需求。
阅读全文