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());
    }
};
相关推荐
前端小L5 小时前
贪心算法专题(十):维度权衡的艺术——「根据身高重建队列」
javascript·算法·贪心算法
方得一笔5 小时前
自定义常用的字符串函数(strlen,strcpy,strcmp,strcat)
算法
Xの哲學6 小时前
Linux SMP 实现机制深度剖析
linux·服务器·网络·算法·边缘计算
Thera7776 小时前
状态机(State Machine)详解:原理、优缺点与 C++ 实战示例
开发语言·c++
linux开发之路6 小时前
C++高性能日志库开发实践
c++·c++项目·后端开发·c++新特性·c++校招
wuk9986 小时前
使用PCA算法进行故障诊断的MATLAB仿真
算法·matlab
额呃呃6 小时前
二分查找细节理解
数据结构·算法
无尽的罚坐人生6 小时前
hot 100 283. 移动零
数据结构·算法·双指针
刻BITTER6 小时前
在TRAE 上安装PlatformIO
c++·单片机·嵌入式硬件·arduino
永远都不秃头的程序员(互关)6 小时前
C++动态数组实战:从手写到vector优化
c++·算法