927 字
5 分钟
LeetCode 刷题记录
系列目录
1. 事情是这样的
前段时间面试,面试官忽然说:“打开 LeetCode 看看刷了多少题。”
我当时还挺淡定。项目做了不少,调环境、改功能、看日志、修 bug,怎么也算没闲着。然后页面一打开,数字停在两位数。面试官没说什么,我心里先弹了个 warning。
平时也不是完全不写算法题,只是它们总会排在项目后面。项目里一个问题没解决,下一题就先放一放;放着放着,题目数量就很诚实地停在了那里。
2. 项目很忙,题也确实没刷
把时间放在项目上没有错。做项目会碰到环境、代码结构、调试和协作这些真实问题,很多东西不进项目确实学不到。
但面试里遇到一道题时,项目经历不能替我把双指针写出来,也不能替我解释时间复杂度为什么是 O(n)。有些题看答案时觉得“这个我懂”,真要从头写,又会发现自己懂得不太完整。
这次经历至少把问题摆在台面上了:算法题不是背几个模板就结束,更像是需要反复练习怎么拆问题、怎么选数据结构、怎么把想法写成代码。
3. 这里会记什么
这个专栏不会先立一个很大的题单,也不准备给自己定“多少天刷多少题”的挑战。那种表格一开始总是排得很漂亮,最后真正完成的可能只有第一行。
先按实际刷到的题来写。每篇会记录我是从哪里开始想的,哪一步卡住了,为什么最后选这个解法,复杂度怎么算,以及代码里有哪些容易漏掉的地方。题目做完不代表事情结束,能把它讲清楚才算多拿到一点东西。
4. 先从哪里开始
先从常见题型和那些“以前做过,但下次再见可能还要重新认识一下”的题开始。做一题,记一题,目录也跟着慢慢长出来。
先把下一题写明白。