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());
    }
};
相关推荐
点云SLAM15 分钟前
Boost库中Math 模块的插值(interpolation使用和示例
算法·插值·boost库·b-spline·akima 样条·单调三次样条·barycentric 插值
鸭子程序员15 分钟前
c++ 算法
开发语言·c++·算法
Ghost-Face16 分钟前
《逆袭导论》————初中生的宝书
算法
不会c嘎嘎29 分钟前
算法百练,直击OFFER -- day5
c++·算法
序属秋秋秋1 小时前
《Linux系统编程之进程环境》【环境变量】
linux·运维·服务器·c语言·c++·操作系统·系统编程
Aileen_0v01 小时前
【Gemini3.0的国内use教程】
android·人工智能·算法·开源·mariadb
CoderYanger1 小时前
C.滑动窗口——1423. 可获得的最大点数
java·开发语言·算法·leetcode·1024程序员节
乌萨奇也要立志学C++1 小时前
【洛谷】二分查找专题 告别二分死循环!模板 + 细节 + 实战
c++·算法
Rock_yzh1 小时前
LeetCode算法刷题——128. 最长连续序列
数据结构·c++·算法·哈希算法
WolfGang0073211 小时前
代码随想录算法训练营Day32 | 518.零钱兑换II、377. 组合总和 Ⅳ、70. 爬楼梯(进阶)
算法