Skip to content

Latest commit

 

History

History

91alg

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

91 算法第一期,从2020-06-01 到 2020-08-30。 第二期同样

简介

共分为三篇,基础篇进阶篇专题篇

让你:

  • 显著提高你的刷题效率,让你少走弯路
  • 掌握常见面试题的思路和解法
  • 掌握常见套路,了解常见算法的本质,横向对比各种题目
  • 纵向剖析一道题,多种方法不同角度解决同一题目

第一阶段基础篇(30 天)。预计五个子栏目,每个子栏目 6 天。到时候发讲义给大家,题目的话天一道。 讲义的内容大概是我在下方讲义部分放出的链接那样哦。

规则

大家的问题,打卡题目,讲义都在这里更新哦,冲鸭 🦆 。91 天见证更好的自己!不过要注意一周不打卡会被强制清退。

需要提前准备些什么?

  • 数据结构与算法的基础知识。 推荐看一下大学里面的教材讲义,或者看一些入门的图书,视频等,比如《图解算法》,邓俊辉的《数据结构与算法》免费视频课程。总之, 至少你要知道有哪些常见的数据结构与算法以及他们各自的特点。
  • 有 Github 账号,且会使用 Github 常用操作。 比如提 issue,留言等。
  • 有 LeetCode 账号,且会用其提交代码。

语言不限,大家可以用自己喜欢的任何语言。同时我也希望你不要纠结于语言本身。

具体形式是什么样的?

  • 总共三个大的阶段
  • 每个大阶段划分为几个小阶段
  • 每个小阶段前会将这个小阶段的资料发到群里
  • 每个小阶段的时间内,每天都会出关于这个阶段的题目,第二天进行解答

比如:

  • 第一个大阶段是基础
  • 基础中第一个小阶段是数组,栈和队列
  • 数组,栈和队列正式开始前,会将资料发到群里,大家可以提前预习。
  • 之后的每天都会围绕数组,栈和队列出一道题,第二天进行解答。大家可以在出题当天上 Github 上打卡。

大家遇到问题可以在群里回答,对于比较好的问题,会记录到 github issue 中,让更多的人看到。Github 仓库地址届时会在群里公布。

奖励

对于坚持打卡满一个月的同学,可以参加抽奖,奖品包括算法模拟面试,算法相关的图书等。连续打卡七天可以获得补签卡一张哦

讲义

作为一个程序员,我们会写各种各样的代码。但是不管是什么功能,只要我们对其拆解得足够细,你会发现其都是数据结构 + 算法。数据结构就是数据的存储形式,算法就是对数据的一系列操作。而这些操作从本质上来说就是增,删,查,我们无时无刻不在与这些东西打交道。而算法的学习就需要我们稳稳地抓住这三点。当你明确了这三点之后,你会发现数据结构就是手到渠成的事情了,也就是说数据结构是为了算法服务的。当你的算法分析好了,数据结构自然也会到位。

一般而言,我们遇到一个问题,第一步是建立算法模型。第二步则是根据算法模型分析我们需要对数据进行哪些操作(增删改)。第三步,我们需要分析哪些操作最频繁,对算法的影响最大。最后,我们需要根据第三步的分析结果选择合适的数据结构。

可以看出,我们的分析过程是一层一层,逐步递进的。每一步都需要前一步分析的结果。如果你碰到的问题都严格按照我的这个思维模型进行的话,久而久之,你会逐步培养起自己的算法思维。这个是最最重要的,大家一定要把算法思维的培养放到学习算法中最高的位置。

希望大家在接下来的章节,可以用这个思维模型去练习。

先导篇(TODO)

基础篇

进阶篇

【91 算法-进阶篇】02.Trie(Markdown)

专题

参考答案

课程列表