「准备实习大约一个月,系统刷LeetCode。从Easy开始巩固基础算法,逐步过渡到难题。」——这不是某培训机构广告,是一个开发者的真实记录。但问题来了:刷题到底在刷什么?
一、LeetCode的隐藏结构:不是题库,是能力图谱
原文作者提到一个关键细节:每道题都关联特定主题。数组、字符串、哈希表、双指针、滑动窗口、栈、队列、链表、二叉树、递归、回溯、动态规划……
这不是随机分类。LeetCode的底层设计是一套能力拆解系统——把「算法能力」这个模糊概念,切成了可量化的技能点。
作者的做法很聪明:不是按难度随机刷,而是按主题集中突破。这样能看到模式(pattern),知道什么数据结构在什么场景下生效。这才是刷题和背题的本质区别。
二、大厂面试的真相:考的不是答案,是思维过程
原文有个关键判断:「这不是死记硬背,而是思考能力和寻找最优解的能力。」
作者分享了自己的四步流程:先独立解题→卡住了看提示→理解后自己重写→最后口头讲解。第四步最容易被忽略,但恰恰是大厂面试的隐藏评分项。
技术面试官真正在听的:你能不能把你的思路翻译成别人能听懂的语言?这直接对应工作中的代码评审、技术方案沟通。
很多人刷到能秒解Hard题,面试却挂掉——问题往往在这里。
三、从刷题到工程师思维:LeetCode的副产品
原文的总结很到位:LeetCode帮助培养「工程师式思考」——识别问题、寻找最优解、向他人解释。
这三件事恰好对应软件工程的核心闭环:需求理解→方案设计→技术对齐。刷题表面是算法训练,实际是在模拟这个闭环的压缩版。
有个反直觉的发现:Easy题的价值被严重低估。作者从Easy开始,不是为了简单,而是为了建立模式识别的肌肉记忆。很多Medium和Hard题,本质是多个基础模式的组合变形。
四、给正在刷题的人:三个可立即执行的策略
第一,按主题批量刷,而非按难度。连续做5道滑动窗口,比随机做5道不同题型更能建立直觉。
第二,每道题必须讲出来。对着空气说一遍,或写题解。如果讲不清楚,等于没学会。
第三,记录你的「卡壳点」。是思路完全错误?还是知道方向但写不出代码?这两种问题的解决方案完全不同。
最后一点:LeetCode的题量焦虑是陷阱。原文作者一个月的系统准备,重点在「系统」二字——有策略的100题,远胜无策略的500题。
如果你正在准备面试,今晚就可以试试:选一道你「会但讲不清」的题,录一段3分钟的讲解音频。听完你会知道自己差在哪。
热门跟贴