[LeetCode]day17 349.两个数组的交集
https://leetcode.cn/problems/intersection-of-two-arrays/description/
题目描述
给定两个数组 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看出)
解法一:暴力解法
最容易想到的就是使用双重循环遍历两个数组,发现有相同元素并且结果数组中没有重复的元素时,就加入结果数组中
class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {vector<int>re;for(int i=0;i<nums1.size();i++){for(int j=0;j<nums2.size();j++){if(nums1[i]==nums2[j]&&(find(re.begin(),re.end(),nums1[i])==re.end())){re.push_back(nums1[i]);}}}return re;}
};
时间复杂度为 O ( n ) = n 2 O(n)=n^2 O(n)=n2
解法二:使用哈希表
上一篇我们提到过,当需要查询一个数据是否存在于某个集合中时,要先想到使用哈希表
使用数组
由于这道题中,数组中的数据最大为1000,我们可以考虑使用数组
数组的下标对应了每一个数字
- 用set来作为结果数组,因为set本身数据是不可重复的
- 遍历nums1 比如说遍历到5 就将hash[5]改为1
- 遍历nums2 比如说遍历到5 去查找hash[5]是否为1 如果为1,说明num2和nums1中都有这个数 如果并且re数组中没有5,就将它放入结果数组中
class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int>re;int hash[1001]={0};for(int i=0;i<nums1.size();i++){hash[nums1[i]]=1;}for(int i=0;i<nums2.size();i++){if(hash[nums2[i]]==1){re.insert(nums2[i]);}}return vector<int>(re.begin(),re.end());}
};
使用set
如果数据更大一些,就可以考虑使用set 其中unordered_set查询效率比较高
class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int>re;unordered_set<int>hash;for(int i=0;i<nums1.size();i++){hash.insert(nums1[i]);}for(int i=0;i<nums2.size();i++){if(hash.find(nums2[i])!=hash.end()&&re.find(nums2[i])==re.end()){re.insert(nums2[i]);}}return vector<int>(re.begin(),re.end());}
};
使用哈希表 时间复杂度 O ( n ) = m + n O(n)=m+n O(n)=m+n
相关文章:
[LeetCode]day17 349.两个数组的交集
https://leetcode.cn/problems/intersection-of-two-arrays/description/ 题目描述 给定两个数组 nums1 和 nums2 ,返回它们的交集。 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序 。 示例 1: 输入:nums1 [1,2,2,1…...
axios 发起 post请求 json 需要传入数据格式
• 1. axios 发起 post请求 json 传入数据格式 • 2. axios get请求 1. axios 发起 post请求 json 传入数据格式 使用 axios 发起 POST 请求并以 JSON 格式传递数据是前端开发中常见的操作。 下面是一个简单的示例,展示如何使用 axios 向服务器发送包含 JSON 数…...
linux交叉编译paho-mqtt-c
下载源代码: https://github.com/eclipse-paho/paho.mqtt.c.git 编译: 如果mqtt不需要SSL安全认证,可以直接执行(注意把编译工具链路径改成自己的) cd paho.mqtt.c-1.3.13/ mkdir install # 创建安装目录 mkdir…...
feign Api接口中注解问题:not annotated with HTTP method type (ex. GET, POST)
Bug Description 在调用Feign api时,出现如下异常: java.lang.IllegalStateException: Method PayFeignSentinelApi#getPayByOrderNo(String) not annotated with HTTPReproduciton Steps 1.启动nacos-pay-provider服务,并启动nacos-pay-c…...
安装指定版本的pnpm
要安装指定版本的 pnpm,可以使用以下方法: 方法 1: 使用 pnpm 安装指定版本 你可以通过 pnpm 的 add 命令来安装指定版本: pnpm add -g pnpm<版本号>例如,安装 pnpm 的 7.0.0 版本: pnpm add -g pnpm7.0.0方法…...
【系统设计】Spring、SpringMVC 与 Spring Boot 技术选型指南:人群、场景与实战建议
在 Java 开发领域,Spring 生态的技术选型直接影响项目的开发效率、维护成本和长期扩展性。然而,面对 Spring、SpringMVC 和 Spring Boot 这三个紧密关联的框架,开发者常常陷入纠结:该从何入手?如何根据团队能力和业务需…...
常用数据结构之String字符串
字符串 在Java编程语言中,字符可以使用基本数据类型char来保存,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。 操作字符串常用的有三种类:String、StringBuilder、StringBuffer 接下来看看这三类常见用…...
深入Linux系列之进程地址空间
深入Linux系列之进程地址空间 1.引入 那么在之前的学习中,我们知道我们创建一个子进程的话,我们可以在代码层面调用fork函数来创建我们的子进程,那么fork函数的返回值根据我们当前所处进程的上下文是返回不同的值,它在父进程中返…...
HAL库外设宝典:基于CubeMX的STM32开发手册(持续更新)
目录 前言 GPIO(通用输入输出引脚) 推挽输出模式 浮空输入和上拉输入模式 GPIO其他模式以及内部电路原理 输出驱动器 输入驱动器 中断 外部中断(EXTI) 深入中断(内部机制及原理) 外部中断/事件控…...
网络安全-HSTS
什么是HSTS? HTTP严格传输安全协议(HTTP Strict Transport Security,简称:HSTS) 是互联网安全策略机制。网站可以选择使用HSTS策略,来让浏览器强制使用HTTPS与网站进行通信,以减少会话劫持风险。…...
全程Kali linux---CTFshow misc入门(38-50)
第三十八题: ctfshow{48b722b570c603ef58cc0b83bbf7680d} 第三十九题: 37换成1,36换成0,就得到长度为287的二进制字符串,因为不能被8整除所以,考虑每7位转换一个字符,得到flag。 ctfshow{5281…...
HarmonyOS:时间日期国际化
一、使用场景 在不同的国家和文化中,时间和日期格式的表示方法有所不同,使用惯例的不同点包括:日期中年月日的顺序、时间中时分秒的分隔符等。若应用中需展示时间日期,要确保界面以合适的方式显示,以便用户能够理解。 …...
使用miniforge代替miniconda
conda作为Python数据科学领域的常用软件,是对Python环境及相关依赖进行管理的经典工具,通常集成在anaconda或miniconda等产品中供用户日常使用。 但长久以来,conda在很多场景下运行缓慢卡顿、库解析速度过慢等问题也一直被用户所诟病…...
LIMO:少即是多的推理
25年2月来自上海交大、SII 和 GAIR 的论文“LIMO: Less is More for Reasoning”。 一个挑战是在大语言模型(LLM)中的复杂推理。虽然传统观点认为复杂的推理任务需要大量的训练数据(通常超过 100,000 个示例),但本文展…...
【玩转 Postman 接口测试与开发2_018】第14章:利用 Postman 初探 API 安全测试
《API Testing and Development with Postman》最新第二版封面 文章目录 第十四章 API 安全测试1 OWASP API 安全清单1.1 相关背景1.2 OWASP API 安全清单1.3 认证与授权1.4 破防的对象级授权(Broken object-level authorization)1.5 破防的属性级授权&a…...
如何编写测试用例
代码质量管理是软件开发过程中的关键组成部分,比如我们常说的代码规范、代码可读性、单元测试和测试覆盖率等,对于研发人员来说单元测试和测试覆盖率是保障自己所编写代码的质量的重要手段;好的用例可以帮助研发人员确保代码质量和稳定性、减…...
复原IP地址(力扣93)
有了上一道题分割字符串的基础,这道题理解起来就会容易很多。相同的思想我就不再赘述,在这里我就说明一下此题额外需要注意的点。首先是终止条件如何确定,上一题我们递归到超过字符串长度时,则说明字符串已经分割完毕,…...
zzcms接口index.php id参数存在SQL注入漏洞
zzcms接口index.php id参数存在SQL注入漏洞 漏洞描述 ZZCMS 2023中发现了一个严重漏洞。该漏洞影响了文件/index.php中的某些未知功能,操纵参数id会导致SQL注入,攻击可能是远程发起的,该漏洞已被公开披露并可被利用。攻击者可通过sql盲注等手段,获取数据库信息。 威胁等级:…...
Redis03 - 高可用
Redis高可用 文章目录 Redis高可用一:主从复制 & 读写分离1:主从复制的作用2:主从复制原理2.1:全量复制2.2:增量复制(环形缓冲区) 3:主从复制实际演示3.1:基本流程准…...
系统URL整合系列视频四(需求介绍补充)
视频 系统URL整合系列视频四(需求补充说明) 视频介绍 (全国)大型分布式系统Web资源URL整合需求(补充)讲解。当今社会各行各业对软件系统的web资源访问权限控制越来越严格,控制粒度也越来越细。…...
如何用stressapptest进行高效内存和磁盘压力测试?实战案例分享
如何用stressapptest进行高效内存和磁盘压力测试?实战案例分享 在服务器运维和硬件性能评估中,内存和磁盘的稳定性直接关系到系统的可靠性。想象一下,当你的服务器在凌晨三点突然因为内存错误崩溃,或者磁盘在高峰期出现读写异常&a…...
acjscsdbhvusfd
一、yolo v1是什么? YOLO(You Only Look Once)算法 是一种目标检测算法,是经典的one-stage方法。YOLO v1 开创了单阶段目标检测的先河,其简洁的架构 和高效的推理为后续版本奠定了基础。尽管存在小目标检测和定位精度的…...
PostgreSQL 模式级权限迁移:一键批量修改所有表与对象的所有者
1. 为什么需要批量修改PostgreSQL对象所有者? 在实际的数据库运维工作中,经常会遇到需要批量修改数据库对象所有者的情况。我遇到过不少这样的场景:公司部门重组后,原先由开发团队A负责的项目转交给团队B维护;或者某个…...
【独家首发】Python扩展安全成熟度模型(PESMM v1.2):覆盖编译期/加载期/运行期的9维评分体系,仅限前500名开发者免费获取评估工具包
第一章:Python扩展模块安全概述Python 扩展模块(如 C/C 编写的 .so/.dll 文件或 Cython 生成的二进制模块)在提升性能的同时,也引入了原生层特有的安全风险。与纯 Python 代码不同,扩展模块直接操作内存、调用系统 API…...
WebGLInput:重构Unity WebGL输入体验的革命性方案
WebGLInput:重构Unity WebGL输入体验的革命性方案 【免费下载链接】WebGLInput IME for Unity WebGL 项目地址: https://gitcode.com/gh_mirrors/we/WebGLInput 在Unity WebGL开发中,输入法支持一直是开发者面临的核心挑战之一。WebGLInput项目通…...
OpCore-Simplify智能构建:OpenCore EFI自动化生成的效率提升实践
OpCore-Simplify智能构建:OpenCore EFI自动化生成的效率提升实践 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 用户场景:黑苹…...
打破学术写作边界:NativeOverleaf离线工作流全解析
打破学术写作边界:NativeOverleaf离线工作流全解析 【免费下载链接】NativeOverleaf Next-level academia! Repository for the Native Overleaf project, attempting to integrate Overleaf with native OS features for macOS, Linux and Windows. 项目地址: ht…...
Python从入门到精通(第08章):列表、元组、集合与字典
Python从入门到精通(第08章):列表、元组、集合与字典 开头导语 这是本系列第08章。本文采用"知识点讲解 + 错误示例 + 正确写法 + 自测清单"的结构,目标是让你不仅能看懂,还能独立写出可运行代码。建议你边看边敲,所有示例都亲自执行一次。 章节摘要 本章围…...
如何快速实现Font Awesome图标字体文件格式转换:终极在线工具指南
如何快速实现Font Awesome图标字体文件格式转换:终极在线工具指南 【免费下载链接】Font-Awesome The iconic SVG, font, and CSS toolkit 项目地址: https://gitcode.com/GitHub_Trending/fo/Font-Awesome Font Awesome作为一款标志性的SVG、字体和CSS工具包…...
Charticulator:颠覆式图表构建引擎如何让数据工作者实现零代码可视化创新
Charticulator:颠覆式图表构建引擎如何让数据工作者实现零代码可视化创新 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 数据可视化领域长期面临着模…...
