LeetCode 349. 两个数组的交集 (C++实现)

1. 题目描述

给定两个数组 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 也是可通过的

2. 解题思路

首先定义一个用来记录元素有无的数组record,还有记录重复元素的集合ans,然后遍历nums1,记录nums1中的元素,然后遍历nums2,如果num2的元素在nums1中出现过,则压入ans,最后返回ans

3. 代码实现

cpp 复制代码
class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        unordered_set<int> ans;
        vector<int> record(1001,0);
        for (int i = 0; i< nums1.size(); i++)
        {
            record[nums1[i]]++;
        }
        for (int i = 0; i< nums2.size(); i++)
        {
            if(record[nums2[i]] != 0)
            {
                ans.insert(nums2[i]);
            }
        }
        return vector<int>(ans.begin(),ans.end());
    }
};
相关推荐
青梅味猪大肠35 分钟前
【操作系统-60】临近适应算法
java·linux·开发语言·嵌入式硬件·算法·操作系统
apcipot_rain3 小时前
C++转Java日记(02)
java·开发语言·c++
杜 硕3 小时前
从零开始的C++生活——第七讲——02
开发语言·c++·生活
Rabitebla11 小时前
【Linux 底层原理】进程(十):进程等待详解---从僵尸进程到 wait、waitpid 与 status
linux·c++·笔记·学习·visual studio
西西弗Sisyphus13 小时前
C++ 超时互斥锁(Timed Mutex):std::timed_mutex 与 std::unique_lock
c++
其实防守也摸鱼15 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
今天要早睡_16 小时前
C++01_入门基础复习
开发语言·c++
Nuanyt16 小时前
LeetCode Hot 100 链表专题(五)· 2 题(Java)
java·算法·leetcode·链表
Fuyo_111918 小时前
C++ 运行时多态与虚函数机制全面剖析【面试重点】
开发语言·c++·面试