Introduction-to-Algorithms
Materials for newbees to learn coding skills and algorithms 注:这些都是作者自己转码路上觉得比较好的资料,不代表适合所有人。所有资料都是网上公开和免费的,可能需要注册账号。基本上是各个话题里面作者所看过的最高质量的讲解。可以关注自己薄弱的环节,把视频精心看一遍,相信会有收获。
基础:
1. Java 语法基础和数据结构
-
CS61B by UCB
2. 各语言API
-
9:40秒开始,横向对比各个语言的常用数据结构
3. 二分查找
-
从边界考虑
-
我自己写在一亩三分地里的,从lower bound意义出发
-
JasonLi的知乎回答
4. recursion/递归/backtracking
-
基础版可以看一下Marty Stepp的课程 第八讲到第15讲,这是第一个给我讲明白的
-
这个印度人的视频质量也很高(主要看merge sort和quick sort那边讲的recursion过程)
-
自己写的总结:
-
后来发现大佬的总结,目前看到的最清楚版本:
5. Union find
-
Princeton的Coursera上面的课
-
B站up主,正月点灯笼,讲得很详细,语速较慢,可以开2倍速
-
Youtube的up主,williamfiest
6. 图论
-
Youtube的up主,williamfiest
-
Princeton Algorithm part II
7. 位运算
-
B站up主大雪菜
-
B站up主正月点灯笼
-
CSAPP CMU神课
8. sorting
-
基本上涵盖在以上的视频中.
-
这个印度人的视频质量也很高
-
Princeton的Coursera上面的课
9. Heap
-
印度博主
-
Princeton的Coursera上面的课
进阶
1. Trie
-
Princeton Algorithm part II
-
leetcode implement trie
2. Binary Index Tree
-
Youtube WilliamFiest
3. 线段树
4. KMP
-
Princeton Algorithm part II (dfa版)
-
labuladong总结版(dfa)
-
清华大学邓俊辉(nfa)
-
自己总结的写法
5. 背包问题
-
B站up主大雪菜
-
背包九讲
- 可自行Google
6. Range Minimum Query/ Sparse Table
-
算法竞赛进阶指南 (B站up大雪菜 , 李煜东巨佬主讲)31:30 开始,前面可以跳过
7. 贪心
-
B站算法竞赛-陈锋 虽然写得是算法竞赛,但是几乎所有的LC和面试的贪心题目都出自这几个模板。
-
济公学院-贪心
8. 单调队列/单调栈
-
也没有发现质量特别高的,但是基本上可以解决的问题就那么两三种,可以参考B站up大雪菜
总结:
基本上来源是这么几个地方,首先很多基础的东西主要来自四门课,CS61B by UCB, CS106B by Stanford, Algorithm by Princeton, CSAPP by CMU.这些公开课都是精品中的精品,转专业的要打好基础尽量过一遍这些课程。 其他的主要是一些算法的应用和讲解。
主要推荐的有,
YouTube的WilliamFiest,这个人做的图片和动图很好,思路很清晰。
YouTube上印度博主Ravindrababu Ravula,用的白板,思路也很清晰。
B站up主正月点灯笼,这个up主很细致,而且会带你走一遍过程,写一遍代码。
B站up主大雪菜,讲得很清晰,而且每个题都会现场示范代码实现。
微信公众号 labuladong, 讲了很多算法,总结得挺到位的。
力扣国服liweiwei1419,可能是目前最好的回溯算法讲解。