发布时间:2026/8/3 2:37:27
LeetCode 热题 100——day1两数之和 ✨ 把代码写进星轨用逻辑丈量宇宙。导航链接个人主页 星轨初途基础语言专栏 C语言 、 数据结构C 进阶专栏 C学习竞赛类 、⚙️ C专栏开发类刷题实战专栏 算法及编程题分享 、 力扣每日刷题分享文章目录两数之和题目链接方法一暴力枚举复杂度分析代码实现方法二哈希表复杂度分析代码实现方法三排序 双指针复杂度分析代码实现总结两数之和题目链接LeetCode两数之和方法一暴力枚举最直接的思路是使用两层循环枚举数组中所有不同的下标组合(i, j)。对于每一组下标判断nums[i]nums[j]target如果条件成立就返回这两个元素的下标。这种方法不需要额外的数据结构代码比较容易理解但当数组长度较大时执行效率较低。复杂度分析时间复杂度O(N^2)需要枚举所有可能的下标组合空间复杂度O(1)只使用了少量额外变量。代码实现classSolution{public:vectorinttwoSum(vectorintnums,inttarget){intnnums.size();intl-1,r-1;for(inti0;in;i){for(intji1;jn;j){if(nums[i]nums[j]target){li,rj;break;}}}return{l,r};}};方法二哈希表对于当前元素nums[i]我们需要寻找的另一个数为target-nums[i]我原本还想使用数组记录每个数是否出现但题目中的数值范围比较大并且还可能出现负数直接开数组会造成大量空间浪费。因此可以使用哈希表保存已经遍历过的元素及其下标数值-下标遍历数组时先检查哈希表中是否已经存在target - nums[i]如果存在说明已经找到了答案如果不存在就将当前元素和下标存入哈希表。需要注意必须先查找再插入当前元素避免同一个元素被使用两次。复杂度分析时间复杂度O(N)每个元素只需要进行一次哈希表查找和插入空间复杂度O(N)最坏情况下需要将所有元素存入哈希表。代码实现classSolution{public:vectorinttwoSum(vectorintnums,inttarget){unordered_mapint,intcnt;intl-1,r-1;for(inti0;inums.size();i){if(cnt[target-nums[i]]){li,rcnt[target-nums[i]]-1;}cnt[nums[i]]i1;//以免查找时cnt[target-nums[i]]0无法判断是没有还是下标为0}return{l,r};}};也使用find()判断目标值是否存在可以避免operator[]在查找时自动向哈希表中插入新的键值对。方法三排序 双指针原数组是无序的因此不能直接使用双指针。我们可以先将每个元素的数值和它在原数组中的下标绑定在一起pair数值,原下标然后按照数值从小到大排序。排序完成后设置两个指针l指向当前最小的元素r指向当前最大的元素。计算num[l].firstnum[r].first根据计算结果移动指针如果两数之和大于target说明当前和太大需要让右指针左移如果两数之和小于target说明当前和太小需要让左指针右移如果两数之和等于target返回两个元素在原数组中的下标。因为排序会改变元素原来的位置所以必须额外保存每个元素的原下标。复杂度分析时间复杂度O(NlogN)主要开销来自排序空间复杂度O(N)需要额外保存元素数值及其原下标。代码实现classSolution{public:vectorinttwoSum(vectorintnums,inttarget){// first 保存元素值second 保存元素原下标vectorpairint,intnum(nums.size());for(inti0;inums.size();i){num[i].firstnums[i];num[i].secondi;}// pair 默认优先按照 first 从小到大排序sort(num.begin(),num.end());intl0;intrnum.size()-1;while(lr){intsumnum[l].firstnum[r].first;if(sumtarget){// 当前和太大右指针左移--r;}elseif(sumtarget){// 当前和太小左指针右移l;}else{// 返回两个元素在原数组中的下标return{num[l].second,num[r].second};}}return{};}};这种方法通过排序将问题转换成了有序数组中的双指针查找。总结方法核心思路时间复杂度空间复杂度暴力枚举使用两层循环枚举所有下标组合判断两数之和是否等于targetO(N^2)O(1)哈希表遍历数组时使用哈希表查找target - nums[i]是否已经出现O(N)O(N)排序 双指针保存元素原下标并排序然后使用左右双指针逐渐逼近目标值O(NlogN)O(N)三种方法各有特点暴力枚举思路最直接也是最好想到哈希表时间复杂度最低排序 双指针能够帮助我们理解双指针算法的使用前提和移动规律。在实际刷题时可以先写出暴力解法再根据题目数据范围考虑使用哈希表或双指针进行优化。

相关新闻

2026/8/3 2:37:27

电赛电源驱动电路设计:从晶体管到H桥的实战指南

最近在准备电赛,特别是电源类题目时,发现很多同学在驱动电路设计上容易卡壳。无论是驱动电机、LED还是MOS管,一个稳定可靠的驱动电路往往是整个系统成败的关键。网上资料虽然多,但要么过于理论,要么零散不成体系&#…

2026/8/3 2:37:27

智能车电磁导航传感器设计:从LC谐振电路到位置解算实战

1. 项目概述:电磁杆在智能车竞赛中的核心地位最近在准备第二十一届全国大学生智能车竞赛,和几个学弟学妹交流时,发现他们对于“电磁杆”这个核心传感器组件,理解上存在不少模糊地带。有人把它简单等同于一个能检测磁场的“天线”&…

2026/8/3 2:32:27

【无人机巡航】基于卡尔曼状态估计、自适应混合控制、多入侵机处理及全姿态跟踪(横滚、俯仰、偏航)的3D无人机避障系统在MATLAB中实现

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/3 3:37:31

工业自动化多机控制系统设计与优化实践

1. 项目背景与核心需求解析在工业自动化领域,大型制造设备的高效协同控制一直是技术难点。这个项目针对世界五百强企业的生产需求,开发了一套能够实现72小时连续高精度生产的一屏多机控制系统。核心挑战在于如何通过单一HMI界面同时监控和操作多台设备&a…

2026/8/3 3:37:31

金电镀凸块技术:微电子封装的关键工艺解析

1. 金电镀凸块技术概述在微电子封装领域,金电镀凸块(Gold Bump)作为一种关键的互连技术,已经广泛应用于芯片封装、显示驱动和MEMS器件中。这种技术通过在芯片焊盘上电镀形成微米级的金凸块,实现芯片与基板之间的电气连…

2026/8/3 3:37:31

UiPath定时任务全攻略:从Cron表达式到生产级调度实战

1. 项目概述:为什么定时任务是RPA的“心脏”?如果你用过UIPATH,肯定遇到过这样的场景:每天上班第一件事,就是手动打开机器人,运行那个处理日报的流程。或者,半夜里有个数据同步的活儿&#xff0…

2026/8/3 3:37:31

AI托管+安全数字员工,你的爆单选品助手来了

跨境电商的战场,已经从“拼经验”变成了“拼效率”。如果你还在手动选品、人工计算利润、反复切换平台,那你很可能正在被时代抛弃。今天,我们不谈虚的,只聊怎么用数据和技术,把“选品”变成一门确定性生意。一、为什么…

2026/8/3 3:37:31

从Buck电路到智能管理:DIY房车行车充电器完整设计指南

1. 项目背景与核心需求对于许多热爱自驾游、户外露营或房车生活的朋友来说,一个稳定可靠的电力系统是提升旅途舒适度和安全性的关键。车辆在行驶过程中,如何高效地将汽车发电机产生的电能,安全地存储到房车的生活电瓶中,是独立电力…

2026/8/3 3:32:31

Go泛型堆(heap/v2)设计与性能优化实践

1. Go语言堆数据结构演进史在计算机科学中,堆(Heap)是一种特殊的完全二叉树结构,它满足堆属性:每个节点的值都大于等于(最大堆)或小于等于(最小堆)其子节点的值。这种数据…

2026/8/2 0:02:18

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/2 1:52:02

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/1 0:03:49

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/2 8:56:50

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…