《LeetCode 算法笔记教程》开源了!

 Datawhale开源 

作者:杨世超,Datawhale成员

1. 开源初衷

在互联网行业相关的技术面试中,算法和数据结构知识往往是重点考察的内容。众多知名互联网公司喜欢在面试中考察 LeetCode 上的算法题目,通常需要面试者对给定问题进行深入分析并提供解题思路。有时候,面试官还会要求面试者评估相关算法的时间复杂度和空间复杂度。面试官通过检验面试者对常用算法的熟悉程度和实现能力的方式,从而评估面试者解决实际问题的思维能力水平。

因此,对于广大面试者而言,无论是面试国内还是国外的知名互联网公司,通过刷 LeetCode 题目,深入理解算法知识,对拿到一个理想公司的优秀 offer 都是有帮助的。

为了帮助大家,尤其是零基础或者希望全面学习算法与数据结构基础知识的同学,我们开源了 「LeetCode 算法笔记」 教程。

该教程以基础的数据结构和算法为起点,系统讲解相关概念和知识点,再针对不同分类的数据结构和算法,从 LeetCode 平台精选出 200 多道经典算法与数据结构题目,进行具体题目的讲解分析。让学习者可以通过「算法基础理论学习」和「编程实战学习」相结合的方式,彻底掌握算法知识。

2. 项目介绍

2.1 项目简介

  • 超详细的「算法与数据结构」基础讲解教程,「LeetCode 200+ 道」经典题目的详细解析。

  • 本项目从各大知名互联网公司面试算法题中整理汇总了「100 道高频面试题」,帮助面试者更有针对性地准备面试。

  • 本项目易于理解,没有大跨度的思维跳跃,项目中使用大量图示、分解步骤、生动形象的示例来帮助大家理解相关知识点。

  • 本项目先从基础的数据结构和算法开始讲解,再针对不同分类的数据结构和算法,进行具体题目的讲解分析。让学习者可以通过「算法基础理论学习」和「编程实战学习」相结合的方式,彻底掌握算法知识。

2.2 项目地址

  • 开源地址:https://github.com/datawhalechina/leetcode-notes

e72ee8268926498f10e17f14021463d4.png
开源地址
  • 在线阅读:https://datawhalechina.github.io/leetcode-notes/

03a3b7c0289b2f4f01fbb3979220feb9.png
在线阅读

2.3 作者简介

杨世超:Datawhale 成员,北京航空航天大学研究生 / iOS 开发工程师

3. 使用方法

3.1 章节目录

9916e54fa8ad753b1220219690bab3b0.png
章节目录

3.2 组队学习安排

  1. 项目总共 8 个章节,其中第 01 ~ 05 章节为「算法与数据结构知识」,第 06 ~ 07 章节为「100 道高频面试题汇总」,第 08 章节为「各章节习题解析」

  2. 项目中的第 01 ~ 07 章节,每一章节对应「一个学习周期 / 一期组队学习安排」,对应学习时间为 14 ~ 16 天,每期组队学习对应 42 ~ 50 道 LeetCode 题目

  3. 章节中每一小节对应「一个学习专题 / 一次打卡任务」,对应时间为 1 ~ 5 天

  4. 小节中都每天都有对应的「学习内容」和「练习题目(每天 3 道)」

  5. 每天平均花费时间 1 ~ 3 小时不等,根据个人学习接受能力强弱有所浮动

3.3 学习建议

  1. 建议先浏览教程主页的项目介绍,然后按顺序阅读 01 ~ 07 章内容

  2. 从未刷过算法题目的同学,推荐先看下 「01.01.03 LeetCode 入门及攻略(第 01 ~ 02 天)」 相关内容

  3. 零基础或者想综合学习算法基础知识的同学,推荐按照项目中制定的学习周期进行专题学习

  4. 近期有面试需求的同学,推荐直接学习「06. 面试篇(上)(共 16 天)」、「07. 面试篇(下)(共 16 天)」这两期相关内容

  5. 可在看完每日的学习内容之后,选择每日对应的练习题目进行巩固练习

  6. 做完每日练习题目之后,如有余力,可通过相关专题下的题目清单进行拓展练习

4. 创作历程

4.1 创作起因

我想写一本通俗易懂的算法书已经很久了,久到大概有 7 年那么久。至今我还记得大学时曾立下的 flag:我要把我所学到的算法知识总结起来,整理成册,编纂成书,然后大大方方的在封面上写上自己的名字,再将它分享给所有喜欢学习算法的朋友们看。

结果是万万没想到,一晃过去,毕业后参加工作都已经 6 年了,每天忙于开发需求、业务逻辑、项目文档,写算法书这件事也跟其他大多数的待办事项一样,被无限制的闲置在一旁,再也不管不顾了。

直到 2021 年 3 月底的时候,在朋友的怂恿下,我们建了一个算法群,制定了一个为期 3 个月的算法打卡计划(2021 年 4 月 ~ 6 月),这个计划的唯一规则就是:连续两天不刷题就会被踢出群。

就这样我们一群小伙伴们(39 个人)开启了为期 3 个月的刷题计划。3 个月过后,最终只有 13 个人成功完成了刷题计划,另外三分之二的人都因为打卡失败被踢出群了。这些失败的人中也包括我自己,我是在计划即将结束的时候,一次周末忘记了打卡,惨遭淘汰。

虽然这次我的刷题计划失败了,但是经过这 3 个月的刷题练习,让我重新拾起了学习算法的乐趣,并且把刷题变成了自己的日常习惯。在工作之余,我总是习惯性地打开 LeetCode,刷上几道题,然后写下题解,这种感觉很充实也很有成就感。

在这次刷题计划结束之后,2021 年 7 月份的时候,我们重新建立了算法打卡群,并持续到了今天。

就这样,刷题打卡成了我们的日常,群里的小伙伴也越来越多。我们每天刷题,写题解,在群里讨论每日题目的思路,提出问题和回答问题、探讨更好的求解思路。再后来群里的一些小伙伴们开始参加周赛、双周赛,在比赛结束之后我们还会交流赛题思路、做题心得。

4.2 输出是最好的学习方法

在写刷算法题、写题解的过程中,我又开始写算法和数据结构的基础知识,于是就有了现在这个开源项目。后来我学会了用 hugo 搭建网站,就搭建了一个开源项目的电子书网站,方便大家在线阅读。

在写算法书的这个过程中,我发现一个秘籍:

只有「输出」才是最好的学习方法。这也是「费曼学习法」的一个应用。

在写算法内容的时候,如果对一个概念不理解,或者有点模糊,我是不可能把它写清楚,并且也让别人看明白的。只有在参考了大量的算法书籍和大佬的博客,把其中的概念或算法理解透彻了,彻底弄明白了之后,才能够转换为通俗易懂的文字,让大家也看明白。

并且在组织 LeetCode 刷题的组队活动过程中,也会有很多朋友和群里小伙伴,跟我一起进行算法知识探讨,帮我指正错误或者提出建议。这些指正和建议,在很大程度上帮助我改进文章内容和提高自己对算法的理解。就好像是学生在写作业,有专业的老师在帮我批改作业,帮助我进步一样。

就这样,经过一段时间的努力,我从 2021 年 7 月开始,到 2022 年 7 月底,历时整整 1 年,在 LeetCode 上刷了 1000 多题,并且在刷题的过程总结了一些算法知识和数据结构知识,终于写完了这本算法书,也就是 「LeetCode 算法笔记」

4.3 回顾过去

回顾整个「LeetCode 算法笔记」的编写过程,首先要特别感谢 @LSGOMYP、@Sm1les 对我的帮助与支持,没有马老师的举荐和文睿大佬对项目的推动,可能就不会有这个开源教程了。

其次感谢在本书著作准备过程中,帮助过我的朋友,以及一起陪我刷题打卡的朋友,还有提供宝贵意见的读者。是大家共同的努力,才让这本书的内容变得越来越好,谢谢诸位的努力。

编写「LeetCode 算法笔记」对我自己来说是一个挑战,但也是一次成长的过程。在整理知识的过程中,我发现自己对算法的理解更加深入,能够用更简洁清晰的语言表达出来,也能够帮助他人更好地理解。这种分享和教学的过程,不仅巩固了自己的知识,还促使我不断提升表达和传递信息的能力。

4.4 展望未来

未来,我将继续保持对算法和数据结构的学习和刷题习惯。同时,我将不断优化「LeetCode 算法笔记」开源项目,增加更多实用的内容和丰富的示例,使其更适用于不同层次的读者。也欢迎大家提出宝贵的意见和建议,共同让这个项目更加完善。

除此之外,我还希望参与到更多的开源项目中来,与更多的技术爱好者和专业人士交流合作,共同推动开源社区的发展和进步。技术是不断演进的,只有保持学习的状态,才能够不断适应和应对变化。

总的来说,学无止境,我将继续保持学习的热情,不断挑战自己,迎接更多的机遇与挑战。感谢大家,让我们一同努力,共同成长!

169014c7e4ea8f6b0baf1339e5aa8771.png

开源不易,在看↓

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值