news 2026/10/8 18:23:30

LeetCode 1.两数之和

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 1.两数之和

刷题日记1

今天刷了 LeetCode 的第一道经典题:两数之和。

虽然是入门题,但非常适合用来理解「暴力枚举」和「哈希表优化」的思维差距,也是算法的基础开胃题,记录一下自己的解题思路。

题目大意

给一个数组和一个目标值,找出数组里唯一一组和为 target 的两个数,返回它们的下标。不能重复使用同一个元素。

思路一:暴力双重循环

最直白的想法,两层循环枚举所有两个数的组合,匹配成功直接返回下标。

优点是简单无脑、不容易出错;缺点也很明显,时间复杂度是O(n²),数据量大的时候会很慢。

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))

想要提速,核心就是用空间换时间。

我们只需要一次遍历数组:

对于当前数 nums[i],我们需要找的另一个数就是:target - nums[i]。

用哈希表记录「数值对应下标」,每遍历一个数,先查表、再存表,就能一次性找到答案。

这种做法时间复杂度优化到O(n),也是面试标准解法。

class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> mp; for(int i = 0; i < nums.size(); i++){ int need = target - nums[i]; if(mp.find(need) != mp.end()){ return {mp[need], i}; } mp[nums[i]] = i; } return {}; } };

解题小总结

  • 暴力法:适合新手理解题意,数据量大容易超时

  • 哈希表法:空间换时间,最优解,日常刷题、面试首选

  • 先查询、后存入,完美避免重复使用同一个元素

算法刷题不在于刷得多,而在于每道题都吃透思想。两数之和虽简单,但「哈希查表」的思路可以套用在非常多数组题目里,算是非常值得掌握的基础技巧。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 18:23:20

趣博思 AI 科普:论文终稿前,你需要读懂 AI 排版的底层逻辑

写完论文初稿不等于完成写作&#xff0c;无数同学都有这样的经历&#xff1a;几万字正文已经完成&#xff0c;论点论据全部齐备&#xff0c;却卡在终稿排版环节。网上零散搜集的 Word 教程晦涩难懂&#xff0c;照着步骤操作依旧频频出错&#xff0c;改完参考文献&#xff0c;目…

作者头像 李华
网站建设 2026/10/8 18:21:49

Python 正则表达式 re 模块详解,文本提取、字符串清洗实战教程

前言在文本处理场景中&#xff0c;我们经常需要从一堆杂乱字符串中提取手机号、邮箱、网址&#xff0c;或者清洗文本里多余空格、特殊符号。普通字符串 find、replace 方法面对复杂规则很难实现&#xff0c;正则表达式就是专门用来描述文本匹配规则的工具。Python 内置 re 模块…

作者头像 李华
网站建设 2026/10/8 18:21:39

洗衣店小程序源码系统全解析:功能规划、技术选型与上线经验

洗衣店小程序源码系统&#xff0c;说白了就是把门店收衣、洗护、取衣、会员管理这一整条业务链搬进微信小程序的一套代码。上半年我帮一位开洗衣店的朋友从零到一搭过这么一套系统&#xff0c;用户端负责下单、支付、查进度&#xff0c;商家端负责接单、打小票、更新洗护状态&a…

作者头像 李华
网站建设 2026/10/8 18:19:14

FDE实战:用Agent Harness、RAG与MCP串起AI应用全流程

从去年开始&#xff0c;我身边越来越多同事的title里出现了FDE三个字母。有人以为这是前端工程师&#xff08;Front-End Developer&#xff09;的缩写&#xff0c;也有人觉得是某个新职级。其实在我做的这条业务线里&#xff0c;FDE指的是Feature/Full-cycle Development Engin…

作者头像 李华
网站建设 2026/10/8 18:15:42

Python自动备份脚本实战:数据不丢,代码不慌

前言 数据丢了才想起来备份&#xff1f;服务器宕机、误删文件、数据库清空&#xff0c;这些事故每天都在发生。备份这件事&#xff0c;手动做容易忘&#xff0c;忘了就出事。**让脚本每天自动备份&#xff0c;是最省心的方案。**今天分享一套Python自动备份脚本&#xff1a;数据…

作者头像 李华