您的位置:首页 > 新闻 > 热点要闻 > 代办公司营业执照_长春高铁建站_郑州seo排名优化_文章代写

代办公司营业执照_长春高铁建站_郑州seo排名优化_文章代写

2025/12/7 13:26:41 来源:https://blog.csdn.net/2502_90980100/article/details/146914774  浏览:    关键词:代办公司营业执照_长春高铁建站_郑州seo排名优化_文章代写
代办公司营业执照_长春高铁建站_郑州seo排名优化_文章代写

给定两个数组 nums1 和 nums2 ,返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

示例 1:

输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]

示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的

提示:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 1000
class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {//undered_set是c++中的一种关联容器,会自动去重,他存储的元素是唯一的,并且在查找元素时具有平均常数时间复杂度//定义无序集合,定义两个unordered_set<int>类型变量set1和set2;unordered_set<int> set1, set2;//auto&表示自动推导变量类型并使用引用,避免不必要的拷贝//遍历nums1中的每个元素num并将其插入到set1for (auto& num : nums1) //insert用于插入元素set1.insert(num);for (auto& num : nums2) set2.insert(num);//getIntersection通过遍历一个合集在另一个合集中寻找元素return getIntersection(set1, set2);}vector<int> getIntersection(unordered_set<int>& set1, unordered_set<int>& set2) {if (set1.size() > set2.size()) return getIntersection(set2, set1);vector<int> intersection; for (auto& num : set1) {//count用于统计每个元素出现的次数if (set2.count(num))//puck_back用于在容器末尾添加元素 intersection.push_back(num);}return intersection;}
};

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {//sort对元素进行排序sort(nums1.begin(), nums1.end());sort(nums2.begin(), nums2.end());int length1 = nums1.size(), length2 = nums2.size();int index1 = 0, index2 = 0;//定义储存交集的向量 定义一个名为intersection的vector<int>类型的变量用于储存nums1和nums2的交集vector<int> intersection;while (index1 < length1 && index2 < length2) {int num1 = nums1[index1], num2 = nums2[index2];if (num1 == num2) {//back用于最后一个元素的引用
// 保证加入元素的唯一性,判断intersection.size()是否为空,判断当前找到的交集原宿nums1是否与intersection向量中最后一个元素不相等if (!intersection.size() || num1 != intersection.back())//puck_back用于向容器末尾添加元素intersection.push_back(num1);index1++;index2++;}else if (num1 < num2) index1++;else index2++;}return intersection;}
};

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com