91 算法第一期,从2020-06-01 到 2020-08-30。 第二期同样
共分为三篇,基础篇
,进阶篇
和专题篇
。
让你:
- 显著提高你的刷题效率,让你少走弯路
- 掌握常见面试题的思路和解法
- 掌握常见套路,了解常见算法的本质,横向对比各种题目
- 纵向剖析一道题,多种方法不同角度解决同一题目
第一阶段基础篇(30 天)。预计五个子栏目,每个子栏目 6 天。到时候发讲义给大家,题目的话天一道。 讲义的内容大概是我在下方讲义部分放出的链接那样哦。
大家的问题,打卡题目,讲义都在这里更新哦,冲鸭 🦆 。91 天见证更好的自己!不过要注意一周不打卡会被强制清退。
- 数据结构与算法的基础知识。 推荐看一下大学里面的教材讲义,或者看一些入门的图书,视频等,比如《图解算法》,邓俊辉的《数据结构与算法》免费视频课程。总之, 至少
你要知道有哪些常见的数据结构与算法以及他们各自的特点。
- 有 Github 账号,且会使用 Github 常用操作。 比如提 issue,留言等。
- 有 LeetCode 账号,且会用其提交代码。
语言不限,大家可以用自己喜欢的任何语言。同时我也希望你不要纠结于语言本身。
- 总共三个大的阶段
- 每个大阶段划分为几个小阶段
- 每个小阶段前会将这个小阶段的资料发到群里
- 每个小阶段的时间内,每天都会出关于这个阶段的题目,第二天进行解答
比如:
- 第一个大阶段是基础
- 基础中第一个小阶段是
数组,栈和队列
。 数组,栈和队列
正式开始前,会将资料发到群里,大家可以提前预习。- 之后的每天都会围绕
数组,栈和队列
出一道题,第二天进行解答。大家可以在出题当天上 Github 上打卡。
大家遇到问题可以在群里回答,对于比较好的问题,会记录到 github issue 中,让更多的人看到。Github 仓库地址届时会在群里公布。
对于坚持打卡满一个月的同学,可以参加抽奖,奖品包括算法模拟面试,算法相关的图书等。连续打卡七天可以获得补签卡一张哦
作为一个程序员,我们会写各种各样的代码。但是不管是什么功能,只要我们对其拆解得足够细,你会发现其都是数据结构 + 算法。数据结构就是数据的存储形式,算法就是对数据的一系列操作。而这些操作从本质上来说就是增,删,查,我们无时无刻不在与这些东西打交道。而算法的学习就需要我们稳稳地抓住这三点。当你明确了这三点之后,你会发现数据结构就是手到渠成的事情了,也就是说数据结构是为了算法服务的。当你的算法分析好了,数据结构自然也会到位。
一般而言,我们遇到一个问题,第一步是建立算法模型。第二步则是根据算法模型分析我们需要对数据进行哪些操作(增删改)。第三步,我们需要分析哪些操作最频繁,对算法的影响最大。最后,我们需要根据第三步的分析结果选择合适的数据结构。
可以看出,我们的分析过程是一层一层,逐步递进的。每一步都需要前一步分析的结果。如果你碰到的问题都严格按照我的这个思维模型进行的话,久而久之,你会逐步培养起自己的算法思维。这个是最最重要的,大家一定要把算法思维的培养放到学习算法中最高的位置。
希望大家在接下来的章节,可以用这个思维模型去练习。
- 【91 算法-基础篇】01.数组,栈,队列
- 【91 算法-基础篇】02.链表
- 【91 算法-基础篇】03.树
- 【91 算法-基础篇】04.哈希表
- 【91 算法-基础篇】05.双指针
- 【91 算法-基础篇】06.图(TODO)