当前位置: 代码迷 >> 综合 >> leetcode 349. Intersection of Two Arrays(求数组的交集)
  详细解决方案

leetcode 349. Intersection of Two Arrays(求数组的交集)

热度:74   发布时间:2023-11-17 00:54:11.0

题目要求

给定两个数组,求他们的交集。
在这里插入图片描述

解题思路

求交集,所以元素只能出现一次。元素去重的话,我们想到了用set。整体流程:将其中一个数组变成set形式,然后用另一个数组去搜索这个set,如果在set中找到第二个数组的元素,那么我们就记录下来,然后再set中删除,防止再次出现,造成重复添加

主要代码c++

class Solution {
    
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
    set<int>s(begin(nums1), end(nums1)); //构建setvector<int>ans;for(int i=0; i<nums2.size(); ++i)if(s.find(nums2[i])!=s.end()){
    ans.push_back(nums2[i]); s.erase(nums2[i]); //这一步很关键,避免重复添加}                           return ans;}
};

相似题目:leetcode 350 两个数组中的重复元素

  相关解决方案