算法
-
图搜索 (广度优先、深度优先)深度优先特别重要
-
排序
-
动态规划
-
匹配算法和网络流算法
-
正则表达式和字符串匹配
数据结构
-
图 (树尤其重要)
-
Map
-
堆
-
栈/队列
-
Tries | 字典树
额外推荐
-
贪婪算法
-
概率方法
-
近似算法
上面是 Arjun Nayini 的推荐,下面是 Ken George 的推荐
注:下面这个没有特定优先级
算法:
-
三路划分-快速排序
-
合并排序(更具扩展性,复杂度类似快速排序)
-
DF/BF 搜索 (要知道使用场景)
-
Prim / Kruskal (最小生成树)
-
Dijkstra (最短路径算法)
-
选择算法
数据结构
-
HashMap (真的要知道所有哈希结构)
-
图和树(红黑树很好学) (red-black trees are good to learn)
-
堆(优先级队列)
-
栈/队列(必须知道的基础内容)
-
Tries | 字典树
A *和遗传算法也很有趣。