LeetCode算法笔记教程开源了

开源

作者:杨世超,成员

1. 开源初衷

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

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

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

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

2. 项目介绍

2.1 项目简介

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

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

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

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

2.2 项目地址

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

LeetCode算法笔记教程开源了-2

开源地址

在线阅读: https://datawhalechina.github.io/leetcode-notes/

LeetCode算法笔记教程开源了-3

在线阅读

2.3 作者简介

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

3. 使用方法

3.1 章节目录

LeetCode算法笔记教程开源了-4

章节目录

3.2 组队学习安排

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

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

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

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

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

3.3 学习建议

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

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

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

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

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

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

4. 创作历程

4.1 创作起因

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

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

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

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

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

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

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

4.2 输出是最好的学习方法

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

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

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

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

并且在组织 LeetCode 刷题的组队活动过程中,也会有很多朋友和群里小伙伴,跟我

THE END
分享
二维码
< <上一篇
下一篇>>