[349].俩个数组的交集

Posted Debroon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[349].俩个数组的交集相关的知识,希望对你有一定的参考价值。

349.俩个数组的交集

 


题目

题目:https://leetcode-cn.com/problems/intersection-of-two-arrays/

 


函数原型

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {

    }
};

 


集合 Set

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        set<int> st;
        vector<int> ans;                      // 记录俩个数组中的共同元素
        for( auto& s:nums1 )                  // Map 记录nums1
            st.insert(s);
        
        for( auto s:nums2 ) {                 // 扫描nums2,如果 Map 出现过
            if( st.count(s) ) {               // 重复出现
                ans.push_back(s);             // 添加
                st.erase(s);                  // 删除 Set 中的这个元素,避免重复
            }
        }
        return ans;
    }
};

 


集合 Map

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        unordered_map<int,int> map;
        vector<int> ans;                      // 记录俩个数组中的共同元素
        for(int i = 0;i<nums1.size();i++)     // Map 记录nums1
            map[nums1[i]] = 1;

        for(int i = 0;i<nums2.size();i++) {   // 扫描nums2,如果 Map 出现过
            if(map[nums2[i]] == 1){           // 重复出现
                map[nums2[i]] = 0;            // 删除 Map 中的这个元素,避免重复
                ans.push_back(nums2[i]);      // 添加
            }
        }
        return ans;
    }
};

 


以上是关于[349].俩个数组的交集的主要内容,如果未能解决你的问题,请参考以下文章

349哈希表-两个数组的交集

LeetCode Java刷题笔记—349. 两个数组的交集

LeetCode Java刷题笔记—349. 两个数组的交集

LeetCode 349. 两个数组的交集

leetcode NO.349 两个数组的交集 (python实现)

LeetCode刷题349-简单-两个数组的交集