力扣-第645题《错误的集合》
一 . 问题描述
集合 s
包含从 1
到 n
的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。
给定一个数组 nums
代表了集合 S
发生错误后的结果。
请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。
二 . 了解概念
-
重复数字:在数组中出现了两次的数字
-
缺失数字:在
1
到n
范围内应该存在但未出现在数组中的数字 -
哈希表:用于统计数字出现频率的数据结构
三 . 解题思路
-
使用哈希表统计每个数字的出现次数
-
遍历
1
到n
的所有数字:-
如果数字不在哈希表中,则为缺失数字
-
如果数字在哈希表中且出现次数为2,则为重复数字
-
-
返回找到的重复数字和缺失数字
四 . 解题过程
class Solution {public int[] findErrorNums(int[] nums) {int[] arr = new int[2];LinkedHashMap<Integer, Integer> hashMap = new LinkedHashMap<>();for (int name : nums) {if (hashMap.containsKey(name)) {int count = hashMap.get(name);count++;hashMap.put(name, count);} else {hashMap.put(name, 1);}}for (int i = 1; i <= nums.length; i++) {if (!hashMap.containsKey(i)) {arr[1] = i;} else if (hashMap.get(i) == 2) {arr[0] = i;}}return arr;}
}
五 . 时间复杂度和空间复杂度
-
时间复杂度:O(n)
-
第一次遍历数组统计频率:O(n)
-
第二次遍历1到n检查数字:O(n)
-
总体为线性时间复杂度
-
-
空间复杂度:O(n)
-
使用了哈希表存储数字及其出现次数,最坏情况下需要存储n个键值对
-
六 . 自我反思(优化建议)
-
空间优化:可以使用数组代替哈希表来统计频率,因为数字范围已知(1到n),可以节省哈希表的开销
-
数学方法:可以利用数学公式计算1到n的和与实际数组和的差值来找出缺失和重复的数字
-
原地标记:可以在原数组上进行标记(取负数)来标识已访问的数字,无需额外空间
-
LinkedHashMap:当前解法使用了LinkedHashMap,但实际并不需要保持插入顺序,普通HashMap即可
-
提前终止:如果在遍历过程中已经找到重复和缺失的数字,可以提前终止循环
相关文章:
力扣-第645题《错误的集合》
一 . 问题描述 集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。 …...
gem5教程第六章 为ARM扩展gem5 这也是改进gem5的一个基础
本章假设您已经使用gem5构建了一个基本的x86系统,并创建了一个简单的配置脚本。 下载ARM二进制文件 让我们从下载一些ARM基准测试二进制文件开始。从gem5文件夹的根目录开始: mkdir -p cpu_tests/benchmarks/bin/arm cd cpu_tests/benchmarks/bin/arm wget dist.gem5.org/…...
事关数据安全,ARM被爆不可修复漏洞
日前,ARM架构再次被爆出重大安全漏洞,影响波及ARMv8.3架构及以前的所有CPU。该漏洞为硬件级且无法完全修复,如被利用可能造成严重数据泄露风险。 ARM硬件级安全漏洞 来自ARM开发者官网的一项安全更新证实,存在一种名为PACMAN的新型…...
Unity中使用Cinemachine插件创建自由视角相机(freelookCamera)来实现第三人称漫游
1.安装下载Cinemachine插件 2.创建自由相机freelookCamera Follow:为我们的人物 LookAt:相机始终看向的地方,可以新建空物体,放在人物头上, invert:是反向,就是时鼠标移动方向与相机旋转方向一致 在组件最下面的…...
Python爬虫(2)Python爬虫入门:从HTTP协议解析到豆瓣电影数据抓取实战
目录 一、背景与需求二、 Web基础与HTTP协议核心解析2.1 HTTP协议:数据交互的基石2.2 为何爬虫需理解HTTP协议? 三、 Python爬虫实战:Requests库核心用法3.1 安装与环境配置3.2 案例1:GET请求抓取豆瓣电影Top2503.3…...
php基础
文章目录 基本语法基本数据类型:运算符?? 空合并 定义变量字符串操作内置变量\$_SESSION:会话信息\$_GET:获取URL参数 内置函数功能工具类的,utils网络通信类的会话管理类的 基本语法 每一个statement后面以;结尾,与C/C和Java一样注释用//,…...
蓝桥杯17. 机器人塔
机器人塔 原题目链接 题目描述 X 星球的机器人拉拉队有两种服装:A 和 B。 这次他们表演的是“搭机器人塔”,类似下图: AB BA B AA A B BB B B A BA B A B B A组塔规则: A 只能站在 AA 或 BB 的肩上;B 只能站在 AB…...
rpm包管理
1.介绍 rpm用于互联网下包的打包及安装工具,包含在某些Linux发布版中,它生成具有.RPM扩展名的文件.RPM是RedHat Package Manage (RedHat软件包管理公具)的编写 类似windows的setup.exe,这一文件格式名称虽然打上RedHat的标志,但理念是通用的. Linux的…...
es 自动补全
安装拼音分词器 选择es版本对应的pinyin分词器版本 下载后解压,放到es的插件目录下 重启es 自定义分词器 拼音分词器——可选配置 1. 首字母处理配置 keep_first_letter (默认: true) 解释:是否提取每个汉字的首字母组合,用于支持首字母…...
NLTK 文本分类与情感分析
在自然语言处理(NLP)的领域中,文本分类和情感分析是两个非常重要且具有广泛应用的任务。文本分类旨在将文本数据分配到预定义的类别中,而情感分析则专注于确定文本所表达的情感倾向,如积极、消极或中性。Python 的 Nat…...
Android开发常用外部组件及使用指南(上)
文章目录 一、前言二、外部组件的引入方式1. Gradle依赖管理1.1 项目级build.gradle1.2 模块级build.gradle 2. 本地库引入3. 模块化引入 三、网络请求组件1. Retrofit1.1 引入依赖1.2 基本使用1.3 高级特性 2. OkHttp2.1 基本使用2.2 拦截器 四、图片加载组件1. Glide1.1 基本…...
系统架构师2025年论文《系统架构风格》
论企软件架构风格 摘要: 我所在单位是某市主要医院,2017 年 1 月医院决定开发全新一代某市医院预约挂号系统,我担任本次系统的架构师,主要负责整个系统的架构设计工作。该系统旨在优化医院挂号流程,提高患者就医体验,是医院应对医疗信息化变革和提升服务质量的重要举措…...
Linux部署Redis主从
Linux部署Redis主从 1.下载2.安装2.1编译 & 安装 3.修改配置文件4.启动 1.下载 在Redis版本库:https://download.redis.io/releases/ 可根据自己的需求选择下载对应的版本,然后直接下载 2.安装 通过Xftp工具进行上传,选择指定的应用拖…...
【Python 学习笔记】 pip指令使用
系列文章目录 pip指令使用 文章目录 系列文章目录前言安装配置使用pip 管理Python包修改pip下载源 前言 提示:这里可以添加本文要记录的大概内容: 当前文章记录的是我在学习过程的一些笔记和思考,可能存在有误解的地方,仅供大家…...
Django DRF实现用户数据权限控制
在 Django DRF 中使用 ModelViewSet 时,若需实现用户仅能查看和操作自己的数据详情,同时允许所有认证用户访问列表,需结合权限类和动态权限分配。以下是具体步骤: 1. 自定义对象权限类 创建一个 IsOwner 权限类,检查…...
eplan许可证与防火墙安全软件冲突
在使用EPLAN电气设计软件时,有时会遇到许可证与防火墙或安全软件之间的冲突。这种冲突可能导致许可证无法激活或软件无法正常运行,给用户带来诸多不便。本文将为您解析EPLAN许可证与防火墙/安全软件冲突的原因,并提供解决方案,帮助…...
《多Agent架构VS千万字长文本VS深度推理引擎——拆解Coze、通义、Kimi的AI终局博弈密码》
Coze、通义和Kimi终局竞争深度分析 技术路线分野:多Agent协同 vs. 超长文本 vs. 结构化提示 架构差异:三者在技术路线上的侧重点各异,塑造了不同的市场边界。Coze(“扣子”)采用多Agent协同架构,强调插件工…...
《浔川代码编辑器v2.1.0预告》
《浔川代码编辑器v2.1.0预告》 尊敬的浔川代码编辑器用户: 我们很高兴向大家预告即将到来的v2.1.0版本更新计划。以下是各版本的发布时间安排: 版本发布计划 1. **v2.1.0公测版** - 发布时间:待v2.0测试版结束后两周 - 特点:包…...
Python jsonpath库终极指南:json数据挖掘的精准导航仪
Python jsonpath库终极指南:json数据挖掘的精准导航仪 对话实录 小白:(抓狂)这个 JSON 数据有好多层嵌套,怎么快速拿到最里面的值? 专家:(递上探测器)用jsonpath库&…...
QT软件安装(12)
文章目录 一、本章说明二、QT软件包资源三、软件安装教程 一、本章说明 注:本节为【基于STM的环境监测系统(节点云服务器存储QT界面设计)】项目第12篇文章,前面文章已经实现了气体传感数据的采集,并通过4G模块上传至云…...
【人工智能】DeepSeek 的开源生态:释放 AI 潜能的社区协同与技术突破
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 DeepSeek 作为中国 AI 领域的先锋,以其高效的混合专家模型(MoE)和彻底的开源策略,在全球 AI 社区掀起波澜。本文深入剖析 DeepSeek 的开…...
如何选择 Flask 和 Spring Boot
目录 一、选择 Flask 和 Spring Boot 的关键因素如何评价系统的性能1.RPSRPS 的重要性RPS 的评估标准RPS 的计算方法RPS 与并发用户数的关系性能测试中的RPS 2.TPSTPS 的定义TPS 的重要性TPS 与 RPS 的区别TPS 的常见范围计算 TPS 的公式如何提高 TPS 二、后期扩展优化方案Flas…...
在KEIL里C51和MDK兼容以及添加ARM compiler5 version编译器
前言 我们想在一个keil里面可以打开32和51的文件,这样就不需要两个keil了 还有就是现在的keil,比如我用的是5.41的,就没有5版本的处理器,所以要安装 本篇文章我们来详细讲解如何实现上面说的两个内容 准备的东西 1.ARM5编译器 …...
【源码分析】Linux内核ov13850.c
这里写自定义目录标题 1、入口函数:__init sensor_mod_init2、probe函数:ov13850_probe2.1、初始化前的一些准备2.2、设备初始化流程 源码如下 了解运行流程 1、入口函数:__init sensor_mod_init 驱动由 __init 开始 __exit 结束,…...
单片机与FPGA的核心差异、优缺点、编程差异、典型应用场景、选型等对比分析
1. 基本概念差异 单片机(MCU): 基于冯诺依曼/哈佛架构的微控制器,集成CPU、内存、外设接口(如ADC、UART、PWM等),通过软件指令顺序执行任务。 FPGA: 由可编程逻辑单元(…...
PCB规则
PCB封装 原理图绘制完成需要检查 DRC 菜单栏——>设计——>检查 DRC 底部侧边栏——>DRC——>检查 DRC 常见问题: 1)某个导线/网络标签是一个单网络 网络标签名称不一样 网络标签只有一个 引脚没有使用,但是放置了导线 2…...
静态存储区(Static Storage Area)的总结
普通的全局变量未初始化,编译阶段放在com段,链接完后放在bss段 在32位系统中,内核空间为1GB(地址范围:0xC0000000-0xFFFFFFFF),用户空间为3GB 高端内存(HIGHMEM)是32位…...
基于Quill的文档编辑器开发日志(上)——前端核心功能实现与本地存储管理
目录 二、技术选型与架构设计 三、核心功能实现 1. Quill编辑器集成 2. 本地存储管理(DocStorage类) 3. 文档树渲染与事件绑定 四、效果演示与问题总结 一、项目背景 在开发 Taskflow智能Todo系统 的过程中,文档管理模块是核心功能之一…...
Java | 深拷贝与浅拷贝工具类解析和自定义实现
关注:CodingTechWork 引言 在 Java 开发中,对象的拷贝是一个常见的需求,尤其是在处理复杂数据结构时。深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是两种常见的拷贝方式,它们在实现和…...
《巧用DeepSeek快速搞定数据分析》书籍分享
文章目录 前言内容简介作者简介购书链接书籍目录 前言 随着大数据时代的到来,数据分析和人工智能技术正迅速改变着各行各业的运作方式。DeepSeek作为先进的人工智能模型,不仅在自然语言处理领域具有广泛应用,还在数据分析、图像识别、推荐系…...
skynet.cluster 库函数应用
目录 模块概览核心函数解析1. 节点通信2. 节点配置与监听3. 服务注册与查询4. 远程服务代理 底层机制使用场景示例场景1:跨节点数据存储场景2:动态扩展节点 注意事项 以下是对 cluster.lua 模块的详细解析,涵盖其核心功能、函数用途及使用示例…...
精益数据分析(17/126):精益画布与创业方向抉择
精益数据分析(17/126):精益画布与创业方向抉择 大家好!一直以来,我都希望能和大家一起在创业和数据分析的领域中不断探索、共同进步。今天,我们接着深入学习《精益数据分析》,这次聚焦于精益画…...
同样的接口用postman/apifox能跑通,用jmeter跑就报错500
之前没用过jmeter,第一次用调试压测脚本遇到了问题 一样的接口用postman能跑通,用jmeter跑就报错500,百度很多文章都说是该接口需要加一个‘内容编码’改成utf-8,我加了还是不行 后来我就想到apifox好像有隐藏的header,然后开始比较apifox的…...
编写 Markdown 技术文档示例
文章目录 📄 建议的文档命名规则(文件名)✍️ 如何署名与归属标识示例 OpenShift 安装部署前置条件说明文档说明使用说明 📄 建议的文档命名规则(文件名) OCP_Install_Prerequisites_Ghostwritten-v1.0-20…...
23种设计模式-结构型模式之享元模式(Java版本)
Java 享元模式(Flyweight Pattern)详解 🦋 什么是享元模式? 享元模式是一种结构型模式,它通过共享相同的对象来减少内存消耗,适用于大量细粒度对象的场景。关键思想是缓存重复出现的对象,避免…...
单例模式:确保唯一实例的设计模式
单例模式:确保唯一实例的设计模式 一、模式核心:保证类仅有一个实例并提供全局访问点 在软件开发中,有些类需要确保只有一个实例(如系统配置类、日志管理器),避免因多个实例导致状态混乱或资源浪费。 单…...
gem5-gpu教程04 高速缓存一致性协议和缓存拓扑
高速缓存一致性协议 gem5-gpu 的一大贡献是允许用户灵活地定义 GPU 和 GPU-CPU 间的缓存一致性协议。此功能由 gem5 的 Ruby 模块实现,该模块使用 SLICC 语言定义一致性协议。更多信息请访问 gem5 wiki:[[http://gem5.org/Ruby]]。 缓存拓扑 The topology of the cache hi…...
c++ 互斥锁
为练习c 线程同步,做了LeeCode 1114题. 按序打印: 给你一个类: public class Foo {public void first() { print("first"); }public void second() { print("second"); }public void third() { print("third"…...
Pytest教程:为什么Pytest要用插件模式?
目录 一、历史背景:测试框架的局限性与Pytest的设计哲学 1.1 早期测试框架的困境 1.2 Pytest的模块化设计 二、横向对比:插件机制如何让Pytest脱颖而出 2.1 与Unittest/Nose的对比 2.2 插件模式的架构优势 三、插件模式的核心优势解析 3.1 可扩展…...
JVM 生产环境问题定位与解决实战(七):实战篇——OSSClient泄漏引发的FullGC风暴
本文已收录于《JVM生产环境问题定位与解决实战》专栏,完整系列见文末目录 引言 在前六篇博客中,我们系统性地学习了 JVM 生产环境问题定位与解决的全套工具链,涵盖jps、jmap、jstat、jstack、jcmd 等基础工具的使用技巧,深入剖析…...
缩放点积注意力
Scaled Dot-Product Attention 论文地址 https://arxiv.org/pdf/1706.03762 注意力机制介绍 缩放点积注意力是Transformer模型的核心组件,用于计算序列中不同位置之间的关联程度。其核心思想是通过查询向量(query)和键向量(key&am…...
一个关于相对速度的假想的故事-7
回到, 它其实还可以写成, 也就是说,把 作为1,它的 倍也是存在和成立的。或者说,如果认为 是某一种单位(虚数 为单位),那么 的平方 显然也是一种单位(-1为单位)…...
LeetCode算法题(Go语言实现)_57
题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 一、代码实现(回溯法) func letterCombinatio…...
从GPT-5到Claude 3:大模型竞赛的下一站是什么?
从GPT-5到Claude 3:大模型竞赛的下一站是什么? 引言 随着人工智能技术的飞速发展,大语言模型(LLM)已经成为推动自然语言处理(NLP)领域进步的关键力量。自2018年OpenAI推出GPT-1以来࿰…...
leetcode - 字符串
字符串 466. 统计重复个数 题目 定义 str [s, n] 表示 str 由 n 个字符串 s 连接构成。 例如,str ["abc", 3] "abcabcabc" 。 如果可以从 s2( )中删除某些字符使其变为 s1,则称字符串 s1( )可以从字符串 s2 获得。 例如…...
运维打铁:网络基础知识
文章目录 一、网络架构1. 网络架构图2. 各层级功能3. 机房网络常见问题及解决方案 二、交换技术1. 交换技术基础2. 交换技术分类3. 广播域相关概念4. ARP 协议5. 三层交换机6. VLAN(虚拟局域网) 三、路由技术1. 路由器端口类型及功能2. 路由器功能3. 路由…...
黑马商城-微服务笔记
认识微服务 单体架构 微服务架构 微服务拆分 服务拆分原则 什么时候拆分? ●创业型项目:先采用单体架构,快速开发,快速试错。随着规模扩大,逐 渐拆分。 ●确定的大型项目:资金充足,目标明确&a…...
XCZU19EG-2FFVC1760I Xilinx赛灵思FPGA Zynq UltraScale+MPSoC
XCZU19EG-2FFVC1760I 属于 Zynq UltraScaleMPSoC EG(Enhanced General)系列,采用 20nm FinFET 工艺制造,该型号的速度等级为 -2(0.85V VCCINT)、工业级温度(-40℃ 至 100℃)…...
第六章 QT基础:3、QT的打包和部署
问题一:什么是打包和部署? 打包和部署是将开发完成的程序分发给用户并使其能够在目标环境中运行的两个重要步骤。 打包:指的是将开发完成的程序及其依赖的所有资源(如图标、配置文件、动态链接库、字体等)打包成一个可…...
【测试报告】幸运闪烁抽奖系统(Java+Selenium+Jmeter自动化测试)
一、项目背景 幸运闪烁抽奖系统 是一款基于 Spring Boot 实现的前后端分离式的网络抽奖系统,操作便捷,安全可靠。有管理员和普通用户两个角色,支持管理员创建普通用户、新建活动奖品、创建抽奖活动、进行抽奖、通过短信/邮箱通知中奖用户等功…...