【力扣】两个数组的交集

无人机航拍实战:如何用Python代码精准计算目标地理坐标(附完整代码) 本文详细介绍了如何利用Python代码实现无人机航拍图像中目标点的精准地理位置计算。通过解析从像素坐标系到WGS84大地坐标系的完整转换链条,结合相机内参、无人机姿态与地球曲率处理,提供了可直接运行的实战代码,并重点分析了地理位置计算中的常见误差来源与应对策略,助力开发者解决实际项目中的定位漂移问题。 阅读详情

🔥博客主页: 我要成为C++领域大神
🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】
❤️感谢大家点赞👍收藏⭐评论✍️

本博客致力于知识分享,与更多的人进行学习交流

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

提示:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 1000

unordered_set

思路

快速判断某一个元素是否出现在一个集合中,可以考虑使用哈希。因为结果数组不包含重复元素,并且不考虑顺序,而unordered_set可以去重,所以可以使用unordered_set。将数组一转换为集合,数组二的元素逐个去在集合中查找判断是否出现,将结果存放到unordered_set中去。

代码实现

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        unordered_set<int> result_set;
        unordered_set<int> nums1_set (nums1.begin(),nums1.end());
        for(int num:nums2)
        {
            if(nums1_set.find(num)!=nums1_set.end())
            result_set.insert(num);
        }
        return vector<int>(result_set.begin(),result_set.end());
    }
};

数组哈希表

思路

由于题目说明数据不大于1000,所以可以考虑使用数组作为哈希表,避免了空间的浪费。分别遍历两个数组,遍历数组一时,对应元素作为哈希表下标,哈希表元素加1。遍历数组二时,判断元素作为哈希表下标对应元素是否为0即可。

代码实现

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        unordered_set<int> result_set;
        int hash[1005];
        for(int num:nums1)
        {
            hash[num]++;
        }
        for(int num:nums2)
        {
            if(hash[num])
            result_set.insert(num);
        }
        return vector<int>(result_set.begin(),result_set.end());
    }
};
QT6实现USB摄像头接入显示与抓拍功能实现 QT实现USB摄像头接入显示 一、UVC协议简介 UVC全称是USB Video Class(USB视频类),是一种标准化的USB视频设备通信协议,它定义了摄像头与主机之间的数据传输协议和格式。 UVC协议的出现,解决了摄像头厂商之间互不兼容,以及摄像头应用开发与平台之间的散乱问题。 UVC标准是由USB-IF主导制定的,目前最新的版本是UVC 1.5,UVC的缺省设置类容易实现,不需要额外的驱动程序。 阅读详情

相关推荐

保姆级教程:用PCAN-View监控汽车CAN总线,从硬件连接到报文分析(附快捷键大全)

本文提供了一份详细的PCAN-View使用教程,涵盖从硬件连接到报文分析的全流程,特别适合汽车电子工程师和初学者。内容包括硬件准备、软件安装、核心功能操作、高级技巧及故障排查,并附有实用的快捷键大全,帮助用户高效监控和分析CAN总线数据。

weixin_42542669的博客 497

力扣刷题(day0011)两个数组的交集

记录春招准备面试第11天

Far berth的博客 388

Realsense D435i运行ORB-SLAM3

【代码】Realsense D435i运行ORB-SLAM3。

MAX_Hope的博客 2563

哈希表之练习【2】

学习安排根据《代码随想录》~leetcode349 求两个数组的交集,题目简单就不贴图了。 自己能用哈希表的方法解决,但是自己用到了两次for循环,显然浪费了时间。于是看了 《随想录》里面的解析,做了以下总结: 1.暴力解法时间复杂度为O(n^2)【应该是for循环的嵌套,我的不是】; 2.题目如果限制了数值的大小,使用数组来做【如果哈希值比较少,特别分散,跨度非常大,使用数组会造成空间的浪费】 3.unordered_set的底层实现是哈希表,读写效率在set中是最高的,且不会收入 重复数据,也

qq_57328462的博客 418

Matlab处理气象数据(六)数据的面积加权

由于地理投影导致导致每个像元实际地面面积不同,越靠近北极实际面积越小,越靠近赤道实际面积越大,如果不进行面积加权就简单平均,会导致温度较实际温度偏低。 用以下公式计算地理投影每个像元的面积: double pi = 3.1415926; double R = 6371007.181; //units - m double area = (pi/180.0)*R*R*fabs(sin(dLat1/180.0*pi) - sin(dLat2/180.0*pi)) * fabs(dLon1 - dLo

设计の诗 1万+

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版

weixin_44312889的博客 3777

unordered_set基本使用方法

unordered_set基本使用方法 题意:给定两个数组,编写一个函数来计算它们的交集 示例1 输入:nums1=[1,2,2,1],nums2=[2,2] 输出:[2] 示例2 输入:nums1=[4,9,5] o nums2 =[9,4,9,8,4] 输出:[9,4] 说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。 分析:满足无重复元素,无序的特性 #include <vector> #include <iostream> #include <un

weixin_43164504的博客 1287

东华大学oj系统 39 最大乘积

39 最大乘积 作者: Turbo时间限制: 1S章节: 深度优先搜索 问题描述 : 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? 输入说明 : 第一行一个数表示数据组数   每组输入数据共2行:   第1行给出总共的数字的个数n和要取的数的个数m,1<=n<=m<=15,   第2行依次给出这n个数,其中每个数字的范围满足:a[i]的绝对值小于等于4。 输出说明 : 每组数据输出1行,为最大的乘积。 输入范例 : 1 5 5 1 2 3 4 2 输出范例 : 48 注:难

weixin_50336369的博客 525

关于哈希表一种数据结构---std::unordered_set

输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] unordered_set成员方法.find(key) unordered_set.find(key) 查找值为key的元素,如果找到,就返回指向该元素的正向迭代器;反之,则返回尾后迭代器(结束迭代器)。 unordered_set.end() 直接返回尾后迭代器。即返回指向容器最后一个数据单元+1的指针。 unordered_set<int> result_set; 定义哈希表存放结果 unordere

weixin_43700493的博客 3211

AutoSAR EcuM系列01- EcuM模块的功能概述和变体类型

在【ECU的软硬件架构】文章中我们了解ECU的功能和组成,那么ECU具体是怎么启动的呢?我们知道,AutoSAR标准架构有三层,即APPL应用层、RTE层和BSW层。而这些层又被进一步划分为更多单独的组件,如BSW层可能有80多个组件。在ECU启动时,这些组件必须相互交互,有时也必须以某种顺序交互。这些组件的启动顺序由ECU管理器模块或EcuM处理。EcuM负责整个ECU的初始化和去初始化,包括对一些系统模块如。......

1765

Android 12.0 SystemUI下拉状态栏定制化之隐藏下拉通知栏布局功能实现(二)

在12.0的系统定制化开发中,由于从12.0开始SystemUI下拉状态栏和11.0的变化比较大,所以可以说需要从新分析相关的SystemUI的 布局,然后做分析来实现不同的功能,今天就开始实现关于隐藏SystemUI下拉状态栏中的通知栏布局系列二,去掉下拉状态栏中 通知栏部分 白色的圆角背景

安卓兼职framework和app工程师的博客 1634

leetcode349.两个数组的交集

1.题目描述 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 2.示例 示例 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] 也是可通过...

m0_57385165的博客 196

基于混合智能框架的景区边界范围预测与补全系统

摘要 本文提出一种混合智能框架,结合随机森林模型和GIS规则约束,解决景区边界缺失问题。系统基于Python和ArcGIS平台,利用多源地理空间数据训练随机森林分类器预测景区范围,并集成地形、水文、道路等GIS规则进行优化。实验结果表明,该方法能有效预测15000个景区的边界,精度优于单一模型。创新点在于: 1)数据驱动与知识驱动相结合的混合智能范式; 2)面向全国尺度的大规模边界补全; 3)提供完整的Python+ArcGIS实现方案。该系统为景区精细化管理提供了技术支撑,具有实用价值。

huanghm88的专栏 280

力扣简单题系列:两个数组的交集(LeetCode 349)

这道题通过哈希集合法,高效地找到了两个数组的交集。对于初学者来说,掌握哈希集合的使用是解决类似问题的关键。

weixin_53910667的博客 1470

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

力扣LeetCode初级算法(只出现一次的数字&两个数组的交集 II)

坚持刷题的第四天 力扣https://leetcode.cn/leetbook/detail/top-interview-questions-easy/数组 1.只出现一次的数字 Java方法 初级算法 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台 思路一:运用按位异或的方法,异或是当两个数的相同二进制位置相同时返回0,不同则返回1,运用这一特性我们可以将nums数组元素进行异或得到单独的数字 class Solution { public int

weixin_63426509的博客 848

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

『力扣刷题』350两个数组的交集 II 解题代码

LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 350_两个数组的交集 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9] 说明: 输出结果中每个元素出现的次...

Paradox 415

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【简单】力扣算法题解析LeetCode349:两个数组的交集

LeetCode 349题要求计算两个整数数组的交集,结果需去重且顺序不限。通过哈希集合优化,核心步骤为: 将较小数组存入HashSet以去重(O(m)时间); 遍历另一数组,利用集合的O(1)查找筛选交集元素(O(n)时间); 将结果集转为数组输出。 复杂度: 时间O(m+n),空间O(min(m,n))。Java实现中,双重HashSet确保高效去重,实测执行效率优异(见提交详情)。 关键词: 哈希集合、去重、交集、时间复杂度O(m+n)

ylumwd的博客 1236

349. 两个数组的交集(力扣LeetCode)

由于题目提示中给出的数字范围是 0 <= nums1[i], nums2[i] <= 1000,这两个数组的大小被设置为1000,对应可能存在的最大数字。如果两个数组在同一个索引位置上都标记了1,则意味着该数字在两个输入数组中都出现过,即它们的交集,因此将其添加到结果向量 nums3 中。输出结果中的每个元素一定是 唯一 的。最终,nums3 包含了所有在两个输入数组中都出现过的唯一数字,即它们的交集,这个向量将被作为结果返回。输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]

m0_73841621的博客 1286

力扣LeetCode,两个数组的交集

1、给定两个数组,编写一个函数来计算它们的交集。 示例 1: 1 输入: nums1 = [1,2,2,1], nums2 = [2,2] 2 输出: [2] 示例 2: 1 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 2 输出: [9,4] 说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 2、解题思路和代码如...

HiterCoder 466

【简单】力扣算法题解析LeetCode350:两个数组的交集 II

LeetCode 350题要求计算两个数组的交集(含重复元素),结果中每个元素的出现次数等于其在两数组中最小出现次数。提供两种解法: 排序法(推荐):双指针遍历已排序数组,时间复杂度O(m log m + n log n),空间O(1),实测效率更高。 哈希表法:统计较小数组频次后遍历匹配

ylumwd的博客 1250

day23【LeetCode力扣】349.两个数组的交集

要学会使用一种哈希数据结构:unordered_set,这个数据结构可以解决很多类似的问题。(1)使用字典和集合,pyhton中哈希的方式就是使用字典。输出结果中的每个元素一定是。使用数组作为哈希表,(3)使用集合的方式。

canGfly的博客 633

力扣LeetCode,两个数组的交集 II

1、给定两个数组,编写一个函数来计算它们的交集。 示例 1: 1 输入: nums1 = [1,2,2,1], nums2 = [2,2] 2 输出: [2,2] 示例 2: 1 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 2 输出: [4,9] 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑...

HiterCoder 289

【力扣LeetCode】 349_两个数组的交集

本文介绍了两种求解两个数组交集的方法。方法1利用哈希集合的去重特性,先将数组转换为集合去重,再通过遍历查找交集元素。方法2采用排序预处理和双指针扫描,通过同步遍历有序数组寻找公共元素,并用集合动态去重。两种方法都能高效解决数组交集问题,其中方法1适合数据量较小的情况,方法2则通过排序优化更适合大数据场景。两种方案均保证了输出结果的唯一性,不考虑顺序要求。

仟墨(郑龙浩)的博客 480

php 两个数组求交集_LeetCode 力扣官方题解 | 349. 两个数组的交集

力扣 349.两个数组的交集 (点击查看题目)力扣​leetcode-cn.com题目描述给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺...

weixin_39605004的博客 246

insert 数组_LeetCode 力扣官方题解 | 349. 两个数组的交集

力扣 349.两个数组的交集 (点击查看题目)力扣​leetcode-cn.com题目描述给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺...

weixin_39642990的博客 86

day24【LeetCode力扣】350.两个数组的交集2️⃣

请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。这个题目和上一个题有什么区别呢?其实本质上是一样的,但是它的返回结果中出现了重复的元素,那么此时就不能用集合来表示了。

canGfly的博客 804
上一篇: 【力扣】有效的字母异位词
下一篇: 【力扣】两个数组的交集Ⅱ
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值