- 《大话数据结构》[python code] [在看]
- 《算法图解》
- 《算法》[github] [在线阅读] Algorithms by Jeff Erickson
- python数据结构与算法系列课程 [B站地址] [code] [在看]
- 算法面试通过40讲 [B站地址] [在看]
- 数据结构与算法之美 [极客时间]
- 李春葆《数据结构教程》这本书和它的配套视频
- 浙江大学陈越 数据结构 [课程网址](下一个要学的)
- 清华大学数据结构[课程网址] (下下个要学的)
基本数据结构:
算法:
- 排序(~~冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、~~堆排序)
- 查找(顺序查找、
二分查找、二叉树查找、哈希查找) - 贪心算法
- 分治算法
- 动态规划算法
- 回溯算法 数据结构与算法知识点思维导图
-
-
按知识点来,一个知识点一个知识点去攻克,哪个教材某个知识点讲的好用哪个。
-
只靠书是不够的,要善于搜索,会有很多博客分享一些例子。
-
浙江大学、清华大学的课程好好看
-
需要练习做题以及需要做题来检验自己
-
-
- 刷完一道题其实是一件很难的事情,因为普通解法很容易,但是最优解真得去耐着性子研究好久,去查资料,去做优化,这个过程很漫长但是足够迷人。刷题一定要追求完美
-
Chunk it up (切碎知识点)
- 要注重每块之间的脉络和联系(如下所示是数据结构之间的脉络联系)
-
Deliberate practicing (刻意练习)
- 把每一个单独的模块拿出来重复练习
- 练习缺陷、弱点的地方
- 挑战不舒服、不爽、枯燥
-
Feedback(反馈)
-
主动型反馈(自己去找比你做的更好的人)
- 对于编程来说,去github看高手的代码
- 看leetcode上高手是怎么写的
-
被动型反馈(高手给你指点)
- Code review
-
Source:《异类-不一样的成功启示录》
-
Clarification 明确题目意思
-
Possible Solutions 把所有可能的解都弄出来,用最佳解
- compare(time/space)
- optimal(加强)
-
Coding (多写)
-
Test Cases