当前位置: 首页 > article >正文

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. 代码实现

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());
    }
};

http://www.kler.cn/a/456935.html

相关文章:

  • python常用库之数据验证库pydantic
  • 2024165读书笔记|《飞花令·合》——人生飘忽百年内,且须酣畅万古情
  • 如何判断一个学术论文是否具有真正的科研价值?ChatGPT如何提供帮助?
  • 阴阳师の新手如何速刷5个SP/SSR?!(急速育成)
  • C++ 设计模式:享元模式(Flyweight Pattern)
  • 深度学习在图像识别中的最新进展与实践案例
  • nginx反向代理单台 Web 服务器实验
  • (长期更新)《零基础入门 ArcGIS(ArcMap) 》实验五----土地整治(超超超详细!!!)
  • elasticsearch 杂记
  • Android `android.graphics` 包深度解析:架构与设计模式
  • Unity:武器部件指示 / 高级自定义UI组件开发 / Unity Job加速
  • Linux -Vim
  • SpringMVC学习(二)——RESTful API、拦截器、异常处理、数据类型转换
  • Java-37 深入浅出 Spring - IoC容器体系 循环依赖 原型Bean 原型作用域 Lazy ObjectFactory
  • mongodb(6.0.15)安装注意事项,重装系统后数据恢复
  • 【Redis】Redis 典型应用 - 缓存 (cache)
  • Android 13 Launcher3 移除桌面抽屉入口
  • MLLM学习过程
  • 【Beats02】企业级日志分析系统ELK之Filebeat 收集日志及案例一
  • 机器视觉中的单线程、多线程与跨线程:原理与应用解析
  • 前端HTMLCSS
  • Eclipse 添加书签
  • 【SpringMVC】Bean 加载控制
  • 关于easy-es对时间范围查询遇到的小bug
  • 基于springboot校园志愿者管理系统源码和论文
  • Prompt提示工程上手指南(七)Prompt编写实战-基于智能客服问答系统下的Prompt编写