Leetcode 349. 两个数组的交集 C++

Leetcode 349. 两个数组的交集

题目

给定两个数组,编写一个函数来计算它们的交集。

测试样例

示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
说明:
  • 输出结果中的每个元素一定是唯一的。
  • 我们可以不考虑输出结果的顺序。

题解

哈希表记录第一个数组中的数,一个哈希表记录数字是否已经存到答案中了。详细过程见代码

代码

vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        unordered_map<int,int> list;
        unordered_map<int,bool> use;
        for(int i=0; i<nums1.size(); i++){		//统计在第一个数组中的数
            list[nums1[i]]++;
        }
        vector<int> ans;
        for(int i=0; i<nums2.size(); i++){
            if(!use[nums2[i]] && list.count(nums2[i])>0){		//前者是为了避免重复;后者是保证两个数组都有这个数
                ans.push_back(nums2[i]);
                use[nums2[i]] = true;
            }
        }
        return ans;
    }

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/intersection-of-two-arrays
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

热门文章

暂无图片
编程学习 ·

大数据-java基础-第01章 java概述

1.java简介 答:java是1995年推出的一门高级编程语言,它即安全、可移植、又可跨平台,并且可以解决Internet上的大型应用问题。 2.java的特点 答: ①简单易用、完全面向对象; ②与平台无关型、可扩展性强; ③可移植高、支持分布式编程; ④半编译半解释型; ⑤健壮、安全可…
暂无图片
编程学习 ·

python从入门到放弃篇8(while True的使用,列表,if嵌套)实现选举小程序

今天,我又开始了新的征程,开始学习Java,但是老本不能忘,所以,我打算先把python的全套入门到放弃做完,再开始Java的新篇章,我刚刚装了Java的Esclipe编辑器全英文,还不太适应,过一段时间,慢慢熟悉,应该就会好起来了。路一步步走,饭一口口吃。 while循环,我是很喜欢的…
暂无图片
编程学习 ·

元注解

元注解 元注解时定义注解的注解,是Java提供的用于定义注解的基本注解注解 说明@Retention 是注解类,实现声明类Class,声明类别Category,声明扩展Extension@Target 放在自定义注解上的上边,表明该注解可以使用的范围@Inherited 允许子类继承父类的注解,在子类中可以获取使…
暂无图片
编程学习 ·

java实现的通用遗传算法框架

这两天写了一个比较通用的遗传算法框架common-geneticalgorithm,之所以写这个是因为以前每次需要用到遗传算法的时候总是手写一遍,从开始写代码起到现在估计至少写了不下20次了,像matlab,python,js,go,java的版本都写过。 主要思路是将重复的代码部分,像选择算子,精英保留,…
暂无图片
编程学习 ·

前端项目如何管理

前端项目的管理分为两个维度:项目内的管理与多项目之间的管理。1. 项目内的管理在一个项目内,当有多个开发者一起协作开发时,或者功能越来越多、项目越来越庞大时,保证项目井然有序的进行是相当重要的。一般会从下面几点来考证一个项目是否管理得很好:可扩展性:能够很方便…
暂无图片
编程学习 ·

基于SSM的在线考试系统的毕业设计

一、启动说明项目为maven管理,最近集成了redis,所以在运行项目是先要下载redis并启动客户端,方可正常运行项目,除了基本的maven,mysql外,只需要下载redis,无需其他配置,这里就不做过多说明。 二、相关技术说明集成redis来保存用户登录信息,添加过滤器重置用户登录有效…
暂无图片
编程学习 ·

13年蓝桥杯javaB组

13年蓝桥杯javaB组1.末世纪的星期天2.马虎的算式3.振兴中华4.黄金分数割5.有理数类6.三部排序7.错误票据 1.末世纪的星期天 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 还有人称今后的某个世纪末的12月31日,如果是星期一则会是世界末日 有趣的是,任何一个…
暂无图片
编程学习 ·

当你忘记网站上的密码时怎么办?Python如何快速帮你找回?

前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。现如今浏览器可谓是五花八门,火狐、UC、360、QQ 这些浏览器不论美观还是所谓的安全方面都做的很符合我们需求。但如果你的工作与 IT 挂钩,无疑 Chr…
暂无图片
编程学习 ·

疫情下的舆情预测系统工作报告part.4

项目地址:https://github.com/Lee991211/Innovation_training.git数据清洗 当获取了大量的微博数据,需要对冗余数据进行清洗,使数据满足一定格式,以达到模型训练的要求@杨涛同学。当然这个任务相对于爬取就比较简单了,出于保存数据备份的想法,我的清洗脚本分为两步。 was…
暂无图片
编程学习 ·

你想要的Python面试题都在这里了!

第三部分 数据库和缓存(46题) 1. 列举常见的关系型数据库和非关系型都有那些? 关系型数据库: Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL 非关系型数据库: NoSql、Cloudant、MongoDb、Redis、HBase 2. MySQL常见数据库引擎及比较? 在实际工作中,选择一…
暂无图片
编程学习 ·

Redis之父的“退役”感言

Redis之父Antirez今早发布了一篇文章,题为《The end of the Redis adventure》。多年以前深入学习过Redis,这个最流行的缓存解决方案。当时惊叹于其近乎“变态”的性能表现,简直就是一个性能猛兽。而更令人印象深刻的是,在优异的外在表现背后,其代码质量也同样优秀。当年又…
暂无图片
编程学习 ·

面试被问傻了,同事说不懂volatile关键字,由浅入深讲解volatile

面试被问傻了,同事说不懂volatile关键字,由浅入深讲解volatile前言随着互联网企业的兴起,对我们技术的要求也越来越高,很多时候企业又想省钱,又想发挥出机器的最大性能,真是累坏了程序员们。当然,想要适应社会的进步,程序员也要不断的给自己充电,但人能忘本,基础知识…
暂无图片
编程学习 ·

CentOS系统Docker搭建MySQL服务(解决Docker MySQL无法输入中文问题)

MySQLMySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。 MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。Docker 搭建MySQL服务…
暂无图片
编程学习 ·

Design-适配器模式

适配器模式介绍实现代码实现 介绍 意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对…
暂无图片
编程学习 ·

Node.js入门

Nodejs入门 学习Nodejs建议1.了解客户浏览器与服务端后台交互过程,可以在以后的前端开发工作中与后端人员之间的沟通更加容易理解。虽然工作中不一定用的上Nodejs,但是通过对服务端开发的了解,能够让你在日常工作中与公司的后端人员之间的沟通变得更加轻松。2.了解服务端开发…
暂无图片
编程学习 ·

将word文档锁定其他用户不可编辑

将word文档锁定其他用户不可编辑 首先打开你需要锁定的word文档然后点击审阅,如上图 点击限制编辑 点击现在对选定的样式设置格式化,防止被格式化 点击仅允许在文档中进行此类型的编辑 在下拉框内选择不允许任何修改(只读) 点击"是,启动强制保护"
暂无图片
编程学习 ·

CV之Haar特征描述算子-人脸检测

3.1简介 Haar-like特征最早是由Papageorgiou等应用于人脸表示,在2001年,Viola和Jones两位大牛发表了经典的《Rapid Object Detection using a Boosted Cascade of Simple Features》和《Robust Real-Time Face Detection》,在AdaBoost算法的基础上,使用Haar-like小波特征和…