力扣-349. 两个数组的交集

力扣题目

给定两个数组 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容器或map容器插入的值唯一的特性。使用set容器实现起来更加简洁。

C++实现(set容器)

class Solution 
{
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) 
    {
        set<int>s(nums1.begin(), nums1.end());/*拷贝构造*/
        set<int>sTemp;/*存储交集元素*/
        for(int i = 0; i < nums2.size(); i++)
        {
            set<int>::iterator pos = s.find(nums2[i]);
            if(pos != s.end())/*交集的元素*/
            {
                sTemp.insert(*pos);
            }
        }
        return vector<int>(sTemp.begin(), sTemp.end());
    }
};

C++实现(map容器)

class Solution 
{
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) 
    {
        vector<int>arr;/*存储交集的元素*/
        map<int, int>m1;
        map<int, int>temp;
        for(int i = 0; i < nums1.size(); i++)
        {
            m1.insert(make_pair(nums1[i], i));
        }

        for(int i = 0; i < nums2.size(); i++)
        {
            map<int, int>::iterator pos = m1.find(nums2[i]);
            if(pos != m1.end())/*交集的元素*/
            {
                temp.insert(make_pair(pos->first, pos->second));
            }
        }

        for(map<int, int>::iterator it = temp.begin(); it != temp.end(); it++)
        {
            arr.push_back(it->first);
        }

        return arr;
    }
};

相关推荐

  1. -349. 交集

    2024-04-29 04:34:02       10 阅读
  2. 【数据结构与算法】 349. 交集

    2024-04-29 04:34:02       14 阅读
  3. LeetCode349.交集

    2024-04-29 04:34:02       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-29 04:34:02       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-29 04:34:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-29 04:34:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-29 04:34:02       18 阅读

热门阅读

  1. 妙手解迭:React Store数据迭代难题

    2024-04-29 04:34:02       12 阅读
  2. 1343:【例4-2】牛的旅行

    2024-04-29 04:34:02       13 阅读
  3. Vue3封装svg组件

    2024-04-29 04:34:02       12 阅读
  4. Springboot 使用hutool国密算法

    2024-04-29 04:34:02       18 阅读
  5. 联合国官方统计的十大基本原则是什么

    2024-04-29 04:34:02       14 阅读
  6. PCIE与上位机调试流程

    2024-04-29 04:34:02       35 阅读
  7. 杆塔倾斜测量原理

    2024-04-29 04:34:02       20 阅读
  8. TypeScript 学习笔记

    2024-04-29 04:34:02       36 阅读
  9. 线程池问题

    2024-04-29 04:34:02       10 阅读