直播分享:LeetCode 应该怎么刷?

教育   2022-03-16 09:50  

大家好,我是「负雪明烛」

一周前,我应 DataWhale 和「阿里云天池」的邀请,在 BiliBili 和天池直播分享了「LeetCode 应该怎么刷?」这个话题。

可能有些朋友不太不了解 DataWhale 和天池,我先简单介绍一下。

DataWhale 是国内的一个的开源组织,汇聚了国内很多高校和企业的优秀学习者,打造了一系列的开源学习课程。通过组队学习的方式,DataWhale 带领大家一起学习。在国内的开源组织里面,DataWhale 的发展势头很好。

天池是国内影响力非常大的竞赛网站,有算法、工程领域的比赛,现在官网也出了机器学习、数据挖掘、算法的学习课程。如果你在天池中拿到的优质奖项,找工作时会很受认可。

这次我能收到 DataWhale 和天池的邀请,我还是挺激动的哈哈哈!!

这是我直播「LeetCode 应该怎么刷」的视频回放,大家可以直接观看。

下面是我整理的精华版文字稿。

全文分为入门篇提高篇

入门篇

LeetCode 应该怎么入门呢?

基础知识

在刷题之前,需要掌握基础的知识:

  • 数据结构与算法基础
  • 一门熟悉的编程语言

两者的交集部分就是编程语言操作数据结构与算法的 API。

如果没有这个基础,题目很难做出来的哈,所以应该先打好基础再做题。

刷题姿势

在正式刷题之前,需要明确刷题目的:

  • 找工作
  • 考研机试
  • 爱好

不同的刷题目的,做题的方式和策略是不一样的。我相信大部分人刷题就是为了找工作,所以我后文会以找工作为例展开。

对于新手而言,在拿到一个题以后,应该按照什么流程刷题呢?

  1. 读题
  2. 思考:用什么数据机构、算法,时间复杂度是否符合要求。(LeetCode 大部分简单、中等的题目只考一个数据结构与算法)
  3. 看题解:如果思考了 5 分钟还没有思路,一定不要死抠;要学会、理解别人的思路
  4. 默写:根据学习到的思路,默写一遍,如果出错,要会自己 debug。如果还不会,就再去看题解。
  5. 优化、总结:勤于总结,后文有讲。
  6. 多练习:勤能补拙是良训,刷题多了就熟练了。

最终要形成 思考 → 学习 → 练习 → 思考 的闭环。

刷题顺序

LeetCode 现在 2000 多题,实在太多了。绝大多数人都会考虑刷题顺序这个问题。

就像我在前面说的,一定要明确刷题目的:不同的刷题目的,有着不同的刷题策略。

我们要在有限的时间里,追求最大的投资回报率 ROI,所以要找到适合的刷题顺序。

另外,不要盲目追求刷题数目,因为刷得多不代表刷的好,而且 ROI 可能会很差。

选择题目时,可以按照这个标准:

  • 按照题型分类刷,Easy → Medium
  • 优先刷 树、链表、二分查找、DFS、BFS 等面试常考类型
  • 优先刷题号靠前的题目
  • 优先刷点赞较多的题目

针对找工作而言,可以刷这几个题单:

刷题资料

现在世面上的刷题资料挺多的,我推荐的是我读过的比较认可的。

题解作者这块,我推荐:负雪明烛、李威威、花花酱、Grandyang

我要恬不知耻地推荐一下我自己的公众号:「负雪明烛」,麻烦点个关注+星标,会持续分享刷题找工作的干货。

模板可以看我的 CSDN 博客:【LeetCode】代码模板,刷题必会,该文章已经 8 万阅读了,是我传播最广的文章。

我推荐这几本书籍:

  • 《啊哈!算法》:用漫画的形式介绍算法,通俗有趣,可以作为入门书籍
  • 《算法(第 4 版)》:经典、权威的算法入门教材;书籍比较厚,可以挑重点看
  • 《挑战程序设计竞赛》:竞赛的教学书籍,会介绍一些略微少见的算法,可以作为提高
  • 《计算机考研——机试指南》:考研时读过的刷题资料;会介绍 API,很实用的入门书籍

总结与交流

总结的重要性,我不再赘述了。要强调的是一定要用自己的话总结题目、套路,形成自己的做题观。

交流这方面,可以通过题解区、交流群、私信等方式交流,相信大家在这块应该做的比较好了吧哈哈😂

在算法刷题刚入门的时候,要注意:

  • 要有总体规划,不盲目刷。
  • 不追求刷题多,追求掌握得牢
  • 与自己不会的题、知识点较劲,不要待在舒适区!

特别是当你做题有些感觉的时候,一定要牢记第 3 点,否则容易陷入舒适区。


提高篇

如果你过了入门的阶段,可以尝试下周赛、模拟面试。

周赛

我非常推荐通过周赛来检测自己现在的算法能力。周赛可以在有限的时间里,没有外界资料和帮助的情况下,做个模拟考试。

做周赛的过程中,大脑会专注思考,所以记忆也会更牢。

无论自己做没做出来,在赛后都要学习别人的解法。他山之石,可以攻玉。

不会的题目,说明是自己的短板,赛后补一补同类型的题目。

有同学会问:刷到什么程度,可以打周赛呢?我觉得如果你能做出常见的简单题目,遇到中等题目偶尔也有想法,那就可以尝试周赛了哈!

模拟面试

针对找工作刷题,还可以通过模拟面试,检验一下自己。

写代码和解释代码是两种不同的感觉。可能自己做出来了,但是又说不清楚,这样在面试中也是不合格的。模拟面试官的有价值的反馈,能帮助自己点拨迷津。

其实,平时在做题后,也可以通过「」的方法,检验自己。我是通过写题解的方式,来实现的。

很多时候,我能做出来题目,但是我在写题解时找不到思路。也就是处于「懵懵懂懂」的状态,这种情况,还需要自己再思考、琢磨,直至彻底弄懂。


最后

LeetCode 应该怎么刷?可能没有标准的答案。但是,有些做题原则是可以遵守的。

  1. LeetCode 是练出来的,不是看出来的。

  2. 多刷、多总结、多死磕自己不会的题目。

  3. 多花点时间,就能有突破。

归根到底,刷 LeetCode 就是一个考验熟练度的事情。就像有很多关卡的游戏,玩得多了,也就成大神了。

无他,唯手熟尔。


这是我持续坚持写作的第 1/3 天。


关注负雪明烛,点亮算法学习之路!

我是负雪明烛,本科、研究生就读于北京邮电大学。

坚持刷算法题 7 年,写了 1000 多篇题解,博客累计阅读量 400 万+。曾在字节跳动、阿里巴巴等大厂工作。

关注我,你可以获得优质算法题解、找工作经验技巧、模拟面试、大厂内推。

这是一个用心在做的公众号,欢迎点击关注+星标!


负雪明烛
1000 篇算法题解的作者,国内互联网大厂程序员,技术分享爱好者。 爱好算法题解写作,擅长深入浅出讲解计算机知识,乐于分享大厂见闻。和读者一起刷算法题,拿 Offer,交朋友!
 最新文章