哈希1:两数之和:哈希表优化指南

🔥个人主页:Milestone-里程碑

❄️个人专栏: <<力扣hot100>> <<C++>><<Linux>>

<<Git>><<MySQL>>

🌟心向往之行必能至

🚀 经典算法入门:两数之和

💡 题目解析

给定一个整数数组nums和一个目标值target,我们需要在数组中找到两个数,使它们的和等于target,并返回这两个数的下标。

  • 每种输入只会对应一个答案
  • 不能使用同一个元素两次

举个例子:

  • 输入:nums = [2,7,11,15],target = 9
  • 输出:[0,1]
  • 解释:因为nums[0] + nums[1] = 2 + 7 = 9,所以返回它们的下标[0, 1]

🛠️ 解法一:暴力枚举

这是最容易想到的思路,直接用两层循环遍历所有可能的数对,检查它们的和是否等于目标值。

cpp

class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { int n = nums.size(); for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { if (nums[i] + nums[j] == target) { return {i, j}; } } } return {}; // 题目保证有解,这里只是防止编译报错 } };

复杂度分析

  • 时间复杂度:O(n²),因为两层循环,最坏情况下需要检查n*(n-1)/2个数对。
  • 空间复杂度:O(1),只使用了常数额外空间。

这种方法的优点是思路简单,但缺点也很明显 —— 当数组很大时,时间效率会变得很低。


⚡ 解法二:哈希表优化

为了把时间复杂度降到O(n),我们可以用哈希表(unordered_map)来存储已经遍历过的数字及其下标。这样,对于每个数字nums[i],我们只需要在哈希表中查找是否存在target - nums[i],就能在O(1)时间内找到另一个数。

cpp

class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> hashMap; for (int i = 0; i < nums.size(); ++i) { int complement = target - nums[i]; if (hashMap.find(complement) != hashMap.end()) { // 找到互补数,返回结果 return {hashMap[complement], i}; } // 没找到就把当前数存入哈希表 hashMap[nums[i]] = i; } return {}; // 题目保证有解 } };

复杂度分析

  • 时间复杂度:O(n),我们只遍历了数组一次,哈希表的查找和插入操作都是O(1)
  • 空间复杂度:O(n),最坏情况下需要存储整个数组的元素。

这种方法用空间换时间,是算法优化中非常常见的思路。


🎯 核心思路对比

方法时间复杂度空间复杂度适用场景
暴力枚举O(n²)O(1)数组规模较小
哈希表O(n)O(n)追求高效,数组规模较大

这道题的关键在于理解空间与时间的权衡。当你需要更快的速度时,哈希表是一个非常强大的工具。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1188657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

团队作业1——团队展示选题

团队展示: 1.队名 我自己一队 2. 3123004701黄思聪 3.词友星球missu,词友星球觅词友 4.队员风采:其实我主要是做前端的,后端是gemini 5.共同愿景是有个好工作 6.gemini不要乱改我代码 7.这还能咋分工! 8.gemini说…

2026年天津婚姻财产律师联系电话推荐:专业律师团队介绍 - 品牌推荐

在婚姻生活中,财产问题往往是关系稳定与破裂的关键因素之一,尤其是在面临离婚、继承或财产分割等重大事项时,专业的法律指导显得尤为重要。天津作为一座现代化大都市,相关的法律需求日益增长,寻找一位精通婚姻财产…

Struts 2 s2-045

Struts 2 是 Java Web 开发历史上非常著名的一个框架,但也因为其频发的 远程代码执行 (RCE) 漏洞而“臭名昭著”。这主要归咎于其核心设计中的 OGNL (Object-Graph Navigation Language) 表达式引擎。一、 核心原理:…

合肥市英语雅思培训辅导机构推荐、2026权威出国雅思课程排行榜 - 苏木2025

雅思考试作为全球认可度极高的语言测评体系,其备考过程向来充满挑战。尤其在合肥市瑶海区、庐阳区、蜀山区、包河区、长丰县、肥东县、肥西县、庐江县、巢湖市全域,众多考生面临着提分乏力、技巧匮乏、选课迷茫等核心…

基于PLUS-InVEST模型的生态系统服务多情景智能模拟与土地利用优化、论文写作

生态系统服务作为维系人类福祉的核心支撑&#xff0c;其供给能力与土地利用格局紧密相关。高频次的人类活动导致土地利用快速变化&#xff0c;进而影响生态系统结构功能&#xff0c;加剧服务供给的不确定性。情景分析作为评估生态服务权衡关系的成熟方法&#xff0c;需依托高精…

2026年理化板台面厂家哪家好?五大优质实验室设备供应商推荐,重庆弗莱仕领跑行业! - 深度智识库

随着国家对科研基础设施投入持续加大,实验室建设进入高质量发展阶段。据中国实验室装备协会数据显示,2025年全国实验室家具市场规模突破480亿元,其中理化板台面、全钢实验台、通风柜等核心产品需求年均增长超18%。在…

A 股 Tick 数据解惑:工程落地中的核心价值与实操示例

你在做金融工程相关系统开发或策略回测时,是不是遇到过这样的问题:同一套撮合逻辑、同一个信号生成算法,用分钟 K 线回测的时候,全程顺风顺水,结果也完全符合预期,可一旦切换到 Tick 数据进行验证,怪事就发生了…

2026年天津财产分割律师联系电话推荐:资深专家与专业团队 - 品牌推荐

在面临婚姻关系变动、家庭财产继承或共有财产分割等复杂情况时,寻求一位专业、可靠的财产分割律师是维护自身合法权益的关键一步。特别是在天津这样的大都市,涉及房产、股权、存款等大额资产分割的案件日益增多,法律…

Python Web 开发进阶实战:可持续计算 —— 在 Flask + Vue 中构建碳感知应用(Carbon-Aware Computing)

第一章&#xff1a;为什么软件需要碳感知&#xff1f; 1.1 数字碳足迹现状 全球 ICT 行业碳排放 ≈ 航空业总和&#xff08;&#xff5e;2-4% 全球排放&#xff09;数据中心年耗电 > 某些国家全国用电量&#xff08;如阿根廷&#xff09;关键洞察&#xff1a; 同一任务在不…

2026 湖州财政局备案财税服务机构口碑推荐榜(行业专精・实力排名) - 品牌智鉴榜

2026 湖州正规财税服务机构推荐重磅出炉!本榜单严选湖州市财政局官方备案的代理记账机构、正规税务师事务所,无备案异常、无行业违规处罚记录,全量符合《代理记账管理办法》合规经营要求。评选以合规资质、行业专精…

2026年优秀的消毒图书杀菌机,臭氧图书杀菌机,图书杀菌机设备厂家采购精选榜单 - 品牌鉴赏师

引言在当今社会,人们对公共卫生和安全的关注度日益提高,尤其是在图书馆等文化场所,图书的消毒杀菌工作显得尤为重要。为了帮助广大采购者挑选到优秀的图书杀菌机设备,我们依据国内相关行业协会公开的数据形成的指南…

飞书联手安克发布首款硬件 AI 录音豆;ElevenLabs 新一轮融资估值或达 110 亿美元丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态…

opencode skills安装使用案例

skills仓库: https://skillsmp.com/zh 安装&#xff1a; 下载skill zip包 拖着zip包到skill命令行&#xff0c;执行帮安装&#xff0c;会默认安装到C:\Users\用户.config\opencode\skills 使用 需要关闭opencode&#xff0c;重启skill才生效

2026严选全年防脱洗发水品牌口碑榜!哪个牌子防脱洗发水效果好又安全?榜首纯草本实力防脱真有用 - 博客万

在追求健康的生活方式和更加稳定的头皮状态时,防脱洗发水已经成为越来越多人日常护理的必备选择。然而,面对市场上五花八门的防脱产品,究竟哪些能真正带来长效改善,保持头皮的稳定呢?通过对市面上热门品牌进行深入…

麒麟安装Qt

1 sudo apt update && sudo apt upgrade -y# 基础编译工具sudo apt install -y build-essential gcc g++ make cmake# Qt依赖库(图形、多媒体等)sudo apt install -y libgl1-mesa-dev libglu1-mesa-dev libx…

合肥市英语雅思培训辅导机构推荐。2026权威出国雅思课程排行榜 - 苏木2025

作为全球认可度极高的英语语言测试,雅思考试已成为合肥学子奔赴海外留学、职场晋升的重要门槛。然而,在合肥瑶海区、庐阳区、蜀山区、包河区、长丰县、肥东县、肥西县、庐江县、巢湖市全域范围内,雅思培训市场鱼龙混…

2026年天津财产分割律所电话推荐:可靠选择与联系要点 - 品牌推荐

在2026年的今天,随着社会经济结构的持续变化与个人财富形态的日益复杂,婚姻家庭关系中的财产分割问题也变得愈加棘手。无论是涉及传统房产、车辆,还是股权、金融资产乃至数字财产,清晰的法律界定与合理的分割方案都…

2026必备!本科生毕业论文神器TOP10测评

2026必备&#xff01;本科生毕业论文神器TOP10测评 2026年本科生毕业论文工具测评&#xff1a;为何需要这份榜单&#xff1f; 随着高校对学术规范要求的不断提升&#xff0c;本科生在撰写毕业论文时面临的挑战也日益复杂。从文献检索到内容生成&#xff0c;从格式排版到查重检测…

数据驱动创新生态,知识图谱赋能科技成果转化新路径

科易网AI技术转移与科技成果转化研究院 在全球化与数字化转型加速的背景下&#xff0c;科技创新已成为驱动经济高质量发展的重要引擎。然而&#xff0c;科技成果转化效率低下、产学研协同不畅、创新资源匹配失衡等问题&#xff0c;长期制约着创新链与产业链的深度融合。如何打…

2026年常州项目管理软件服务商选哪家?联拓智能软件凭金蝶授权与本地实力出圈 - 博客万

2026年长三角成长型企业项目管理:那些藏不住的痛 当企业从“生存期”迈入“成长型”,项目管理的复杂度呈几何级上升订单多了,流程却碎片化;部门多了,协同却成了“跨山喊话”;成本花了,利润却像“漏了的桶”。艾…