刷题75天复盘:LeetCode面试经典150题拆解与实战节奏

发布时间:2026/10/17 3:34:26
刷题75天复盘:LeetCode面试经典150题拆解与实战节奏 刷题这回事我一直有个观点能坚持到第75天的人拼的已经不是智力了而是节奏感。今天这篇不是什么通关攻略而是结合我在“day752.3”这个时间节点上复盘这套LeetCode面试经典150题单的拆解思路、刷题取舍和实操记录。如果你正好也在刷这份150题或者正准备开始但担心半途而废那这篇文章应该能给你一些具体能落地的东西不只是“多刷几遍”这种正确的废话。先说说这份题单的背景。LeetCode官方的面试经典150题和之前的Hot 100不同它更贴近面试现场的真实考察范围既包含了高频算法题也引入了一些偏工程向的题型比如SQL、Shell这类纯面试会冷不丁考一下的东西。整个题单设计的逻辑是“按主题分类难度渐进”而不是简单堆砌题目。刷透这套题应付大部分公司笔试和一面算法轮压力不会太大。我目前刷到第75天整体进度大概在110题左右属于“核心算法模块已通关偏门题型正在补齐”的状态。这个过程里踩过不少坑也总结出了一套自己的节奏下面借用这篇复盘把题目分组、时间分配、题目类型拆解和避坑经验都一并写出来。1. 刷题前的准备先认清这份题单的结构再决定每天的发力点真正开始刷之前我建议先别急着打开第一题。花一个晚上把150题的目录整体过一遍按自己的舒适度打标签这个动作至少能帮你节省两周的迷茫期。1.1 150题的模块划分与考察权重这道题单在官方后台实际上是有隐性的模块分组的稍微整理一下可以分成四个大块数据结构基础类数组、字符串、哈希表、链表、栈与队列。这部分大概占40题左右属于面试必考、也是刷题最先接触的模块。它们考察的是你对“存储结构”和“基本操作”的掌控力代码量通常不大但边界条件多。算法思维核心类双指针、滑动窗口、二分查找、贪心、递归与回溯、动态规划。这部分量最大大概在60到70题之间也是最容易卡住人的地方。尤其是动态规划和回溯属于“会者不难难者不会”的分水岭。高级与专项类堆、优先队列、字典树、并查集、图论与拓扑排序、设计题。这部分约20到30题。它们的特征是在面试中出现频率低于第一部分但只要出现基本都是压轴题考察的是知识深度和临场迁移能力。非算法题型SQL、Shell脚本。大概10到15题。这一块很多纯后端同学容易忽视的但真正面试的时候数据库和脚本相关的题目常常挂在第三四轮。理解了这几个模块的权重你就知道时间该怎么分配了。把百分之六十的精力压在前两块百分之二十给第三块剩下百分之二十留给SQL和Shell这个配比在面试中收益是最稳的。1.2 时间节奏的制定从“日更打卡”到“阶段验收”刷题这件事最怕的不是题目难而是缺少验收机制。我给自己定的节奏是“三轮滚动式”第一轮Day 1 - Day 40按模块顺序刷每天3道新题。不追求一遍AC但追求看懂题解后能独立复现。第二轮Day 41 - Day 70按难度曲线刷每天因人而异2道新题加1道旧题复盘重点是总结题型套路。第三轮Day 71 - Day 120随机混合刷每天2道题模拟真实笔试的随机出题状态。同时开始高频错题集中回顾。你现在看到我卡在“day752.3”其实就是第二轮刚结束开始进入第三轮的过渡期。这个“2.3”我自己的理解它可以代表当天刷到了2月3号也可以理解为第2轮第3阶段的第75天。重要的不是标记形式而是标记背后的进度检查逻辑我有没有按时完成该阶段的题量每个模块的AC率是否稳定1.3 工具与环境的准备工欲善其事必先利其器但刷题这个“器”不需要太花哨。我日常用的是本地编辑器加浏览器提交没有特意去折腾各种插件。不过有几个点建议你提前准备好语言选型要专一不要今天用Java写链表明天用Python写DP后天又切到Go。面试前尽量锁定一门主语言。我自己主力用Go数据结构题写起来顺手并发相关的题还能展现语言特性。题解笔记要结构化每道题建议记四要素题意一句话、核心思路、复杂度、自己第一次写错的点。这样回头看的时候30秒就能回忆起整道题效率非常高。正确率统计习惯用表格记录自己每道题提交了几次才AC。如果一道题超过4次提交还在错说明思路有问题应该马上停下看题解而不是死磕。2. 核心模块拆解面试经典150里最容易拉分的四类题型前面说完了整体布局接下来深入到具体的题目类型。面试150不像竞赛题那样偏难怪它考察的方式其实就是“用常见的算法在规定复杂度内解决问题”。这里面有四类题型几乎决定了你面试算法的成败分别是双指针与滑动窗口、动态规划、二叉树与图论、以及被很多人忽略的SQL与Shell。2.1 双指针与滑动窗口看似简单实则满布边界陷阱这类题在题单里的数量不少从数组去重、链表环检测到字符串子串问题到处都有它们的身影。但刷题刷到后期你会发现双指针真正的难点往往不在思路而在边界条件的处理。举个很典型的例子在排序数组中查找元素的第一个和最后一个位置。很多人第一次接触的时候都会用两个二分去找左右边界看起来思路没错但一写就容易把left和right的更新条件写反。我自己的习惯是遇到二分变种题先不急着写代码在纸上把循环不变式写清楚也就是明确“这个区间内还剩下哪些元素没有被排除”然后再动手。这道题题单里还有多种变形比如搜索旋转排序数组也是一样的思路只要把区间划分的条件理清基本不会出错。滑动窗口类的问题又是另一套逻辑。比如无重复字符的最长子串这类题的解题模板很固定右指针不断右移左指针根据条件收缩。但很容易忽略一个点窗口收缩的时候要清掉的数据不止是字符本身还有它在数据结构里的计数。我用哈希表做次数统计的时候就吃过一次亏——右指针移动时添加了新字符但没有把旧字符从表里真正删除导致后面判断时认为窗口内还有重复元素白白多了好几次提交。所以说这类题刷一遍是不够的至少三遍确保代码模板烂熟于心才能在面试时闭着眼睛写出来。2.2 动态规划150题里真正的“拦路虎”说动态规划是150题里最劝退的模块应该没人反驳。它不像双指针那样有固定模板每道题的状态定义都可能完全不一样因此需要大量积累套路才能在考场中快速抽象出子问题。以题单里的经典DP题举例爬楼梯和打家劫舍属于入门级但别因为它们简单就跳过。这两题背后的本质是“一维递推”理解了fib结构之后才能看懂后面跳跃游戏这类“贪心DP”混合题。真正拉开差距的是二维DP比如不同路径、最小路径和以及编辑距离这类字符串DP它们会同时考验几个能力状态数组的定义、初始化边界、递推顺序以及空间优化从二维压到一维滚动数组。我在刷二维DP的时候习惯先把dp[i][j]的物理含义用一句话写在注释里一旦发现推导不下去回去检查的就是这个定义而不是公式本身。还有一类是背包问题。虽然题单里的背包题不多但完全背包、0-1背包这两种模型的代码接近区别只在内外层循环的方向上。面试的时候如果时间不够优先掌握0-1背包即可。我记得自己刷到完全背包的时候一度对“正序更新”和“倒序更新”的区别很困惑后来用一个生活化类比才彻底理解0-1背包每件物品只能用一次所以更新状态时必须倒序防止“一件物品被重复使用”而完全背包允许无限用所以正序遍历相当于每个物品可以叠加。想通这一点之后背包题的代码就只是默写了。2.3 二叉树与图论必须掌握“由递归到迭代”的切换能力二叉树相关的题目在面试里占比极高从遍历、最近公共祖先、序列化到二叉搜索树都是高频考点。这部分的复习核心我把它总结为**“三种遍历吃透剩下的都是变形”**。前中后序遍历看起来简单但你要能实现递归版、迭代版、甚至Morris遍历版才算真正掌握。这里提供一个训练思路先把递归实现写到肌肉记忆然后针对中序遍历再练迭代法用显式栈模拟递归过程。图论题稍有不同常见的场景有岛屿数量、课程表、腐烂的橘子等。它们本质上都是“图里做遍历”用DFS还是BFS取决于问题问的是连通性还是最短步数。我一般这样记连通性优先DFS最短路径优先BFS另外图上带权的要想到Dijkstra与堆的配合这一块题单里出现的不多但作为思维拓展值得掌握。2.4 SQL与Shell容易被忽略但性价比极高的“送分题”那些主攻算法的同学常常会忽略SQL和Shell题目。但真正到面委会问“你数据库怎么样”的时候这些题就是送分题。题单里的SQL题目主要集中在聚合函数、分组统计、窗口函数和表连接上。窗口函数是重点像ROW_NUMBER()、RANK()和DENSE_RANK()的区别面试中几乎必考。这里有个实用经验遇到“分组TopN”“连续出现N次”“最大连续天数”这类问题优先想窗口函数它比传统的分组聚合加子查询要简洁得多。Shell题目集中在文本处理和文件解析场景高频考点是grep、awk、sed三件套。对应试来说你只需要能把文件读取、字段拆分、排序输出这几个动作串联起来就能拿下一道中等难度的Shell题。3. 实操过程记录我的day75是如何安排的今天的主题是“day752.3”重点在“2.3”——也就是第2轮第3阶段。这个阶段的核心任务是“混合刷题错题重做限时训练”。我以今天的具体安排为例给你一个可复制的实战模板。3.1 当天题单怎样组合才能兼顾新题和复习以我这天的安排为例共刷了4道题这个量在后期不算大但重在组合合理一道二叉树的题目用来锻炼递归转向迭代的思维一道滑动窗口的题目用来巩固模板的同时找回“边界控制”的感觉一道二维动态规划保持DP的手感防止遗忘状态定义方式一道错题重做这道题来自第42天当时提交了6次才过今天重新验证是否能在15分钟内独立AC。上午的整块时间用来做前两题中午碎片时间看第三题的题解思路下午在本地编辑器完整写下第三题的代码并跑测试用例。晚上统一复盘在用表格整理当天情况后记录一道新错题。你看到第75天还能稳定输出4道题其实靠的是前74天养成的规律不是当天临时起意。3.2 现场编码中的三个细节问题今天做题的时候树上的一道递归转迭代的题目又把我的一个老毛病逼出来了递归函数里的返回值处理。我常犯的错是在回溯时忘记把状态恢复导致子树遍历结束后影响兄弟节点。二叉树的路径和这类题目尤其容易触发这个问题。我的解决办法是分层思考先不考虑回溯把每一层该做什么写清楚再把“回溯即恢复”作为一个必写步骤单独用一行注释标注出来。第二个问题是滑动窗口模板的初始化。窗口问题中左右指针的初始值直接决定了循环的条件是while (right n)还是while (left right)。这两者的选择看似无关紧要但容易在后续计算窗口大小时犯迷糊。我的习惯是统一使用左闭右开区间[left, right)这样窗口长度永远是right - left不需要额外加一减一。第三个坑是二维DP的空间优化。从二维压到一维的时候要注意内层循环的遍历顺序。求最大最小值的题目内层一般要倒序遍历求方案数的题目内层往往是正序。这个细节如果记混了代码在样例上能跑通一换数据就出错属于典型的“思路对但代码错”的情况。3.3 每日复盘表怎样设计才不流于形式很多人做复盘就是记一下“今天做了哪几题AC了没有”这种复盘意义不大。我自己的复盘表包含这几列题目名、模块类型、提交次数、时间复杂度是否达标、卡住的环节思路/代码/边界、是否需要记录进入错题本、下次回顾日期。这样一天下来哪类问题最多、哪个模块还不稳都一目了然。我目前的卡壳环节统计里“边界条件没想清”占了绝大多数这说明问题不在算法思路而在解题前的边界梳理。后续的复习重点自然就倾斜了。复盘表的“下次回顾日期”也很有用它设置了短期记忆的召回点比如3天后、7天后、15天后。每次回顾只需要重新在编辑器中写一遍代码不用完整跑样例写的过程中就能检验是否还记得思路。4. 常见问题与实战避坑这些弯路我替你先走过了刷题打卡到第75天中间踩的坑足够凑一篇两千字的问答。这里挑几个高频出现的问题按场景分类说清楚。4.1 “一上来就刷难题”导致信心崩塌怎么办初学者最容易犯的错误就是心气很高打开题单直接挑一道中等偏上的题做结果半小时没思路一小时看题解还是似懂非懂。这种挫败感积累几天很容易直接放弃。早期刷题的正确顺序应该是先挑题型标签里的“数组”“字符串”“哈希表”这类基础模块下手把简单题刷出量来靠“快速AC”建立正反馈。等基础模块有了手感再过渡到“双指针”“滑动窗口”一步步增加难度。面试经典150这套题单的设计本来就是有梯度的按顺序刷就是最优路径。4.2 一道题刷到一半卡住该不该继续死磕我的经验是20分钟没思路立刻看题解不算丢人。刷题是学习过程不是比赛现场。看题解的时候不要只盯着代码看完自己关掉题解在编辑器中独立写一遍这一步才是真正的学习环节。如果写完还是不理解再回来看题解的思路部分而不是直接复制。死磕只会消耗时间而“看懂题解后能默写”这个动作才是把别人的思路内化成自己能力的关键。4.3 刷过的题过一周就忘了算白刷吗遗忘是非常正常的事情遗忘曲线决定了你一定会忘。刷题本质上就是在和遗忘对抗它靠的是间隔重复。每道题刷完只是完成了“输入”和“编码”如果没有“检索”环节记忆留存率会非常低。所以一定要建立错题本或回顾清单。我在第40天前后把刷过的题重新过了一遍发现大概有30%的题已经写不出来了当时确实很沮丧。但关键不是沮丧而是依靠回顾清单找回这些题每找回一道记忆的牢固程度就会上一个台阶。这也是为什么三个月以上的刷题周期里“复盘”比“刷新题”更重要的原因。4.4 怎么看题解都看懂了一做就废出现这种情况通常是因为直接看了别人的完整解法而没有经历“自己思考”的环节。我的做法是把题解拆成三个层次先看思路不看代码思路理解后自己尝试写代码代码卡住再看具体某一段而不是全部。很多高赞题解写得很漂亮但那是讲解者消化后的产物你跳过了消化过程自然做不出来。解决办法也很简单看完题解后给自己出一道同类型的变种题马上测验自己是否真的理解。这种“以教代学”的方式比单纯重复刷题高效得多。4.5 临近面试还是刷不完怎么办这种情况其实很常见毕竟时间有限题单永远刷不完。面试前我建议放弃“刷完全部”的执念转而采取“高频优先”策略。把题单里标记为高频的题目过一遍或者挑几类最常考的主题重点刷比如数组、二叉树、动态规划。虽然可能达不到“全覆盖”但在面试现场能覆盖大多数常见考点。剩下的部分可以按题型粗略过一遍见一下题目长什么样不至于完全陌生即可。5. 坚持下来的动力以及对这份题单的复盘思考写了这么多最后还是想聊点务虚的东西。刷题坚持到第75天支撑我的动力早就不是“我要进某家公司”这种宏大的目标了而是每天在打卡表格上画一个勾的微小满足感。你会发现当刷题变成一种类似“每天读书半小时”的习惯之后它带来的反而不是焦虑而是一种稳定的掌控感。这套面试经典150题整体设计偏向“面试够用绝不超纲”。它不像竞赛题那样需要你掌握玄妙的数学变形也不像某些公司题库那样偏门它的考察面覆盖了绝大多数面试场景。对于准备面试的人来说这是一份性价比很高的练习材料前提是用正确的方法去刷它。我个人这段时期的收获不光是那些AC记录和模板代码更多是养成了把难题拆解成最小可执行步骤的习惯。这个习惯放到工作里写业务代码、排查线上问题同样受用。等你刷到后半程看到一道题时不再条件反射地打开编辑器而是先在脑子里过一遍数据结构、算法复杂度、边界条件那说明这套题单你算是真正刷透了。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询