网站建设后台管理便捷,湖南平台网站建设推荐,财税公司网站开发,微商城是怎么做的题目
给定两个数组 nums1 和 nums2 #xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
示例 1#xff1a;
输入#xff1a;nums1 [1,2,2,1], nums2 [2,2] 输出#xff1a;[2] 示例 2#xff1a;
输入#xff1a…题目
给定两个数组 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] 也是可通过的
解析
这题比较简单采用set来实现hash这个数据结构unordered_set底层使用哈希表来实现里面存的时没有重复的元素所以最后不需要去重这里值得参照的就是set集合vector容器之间可以直接使用拷贝构造的方式来转换。
代码
class Solution {
public:vectorint intersection(vectorint nums1, vectorint nums2) {// 用来存储结果同时可以起到去重的效果unordered_setint res;unordered_setint input1(nums1.begin(),nums1.end());for(int num:nums2){if(input1.find(num)!input1.end()){res.insert(num);}}// 把unordered_set直接强转为vectorreturn vectorint(res.begin(),res.end());}
};结果