准备Swift编码面试— [索引]算法和数据结构
- 大O和7步思维
1. 1.大O
1. 2. 7步思考 - 基于列表的集合
2. 1.数组
2. 2.链表
2. 3.堆叠
2. 4.队列/出队
2. 5.优先队列 - 树木1
3. 1.堆
3. 2.最大堆/最小堆
3. 3.细分树
3. 4.二叉索引树
3. 5.红黑树
3. 6.挖掘
3. 7.二进制搜索树 - 数学1
4. 1.排列
4. 2.组合
4. 3.素数
4. 4.鹰嘴豆科Seula
4. 5. GCD欧几里得算法 - 递归
- 排序
6. 1.气泡排序
6. 2.插入排序
6. 3.选择排序
6. 4.快速排序
6. 5.合并排序
6. 6.堆排序
6. 7.基数排序 - 正在搜寻
7. 1.回溯
7. 2.蛮力
7. 3.跳转搜索
7. 4.线性搜索
7. 5.电源设置
7. 6.优化问题 - 分而治之
8.1。 二元搜寻 - 贪婪算法
- 位掩码
- 串
11. 1.回文
11. 2. Manacher算法
11. 3.特里
11. 4.后缀树 - 地图
- 不相交集(联合/查找)
- 最小生成树(MST)
14. 1. Kruskal算法
14. 2. Prim的算法 - 最短的路径
15. 1. Dijkstra算法(O(n²))
15. 2. Bellman-Ford算法
15. 3. Flyod-Warshall算法(O(n³))
15. 4.最短路径更快算法 - 图1
16. 1.图建模
16. 2.拓扑排序
–정점의이용한정렬(O(n³))
– DFS를이용한정렬(O(n²)) - 数学2
17. 1.二项式系数
17. 2.帕斯卡三角形
17. 3.加泰罗尼亚语编号
17. 4.欧拉的phi函数
17. 5.费马小定理
17. 6.高斯消除
17. 8.模块化算术
17. 9.离散数学
17. 10.鸽子洞原理
17. 11.第二类斯特林数 - 树2
18. 1.最低共同祖先
(使用预购DFS和细分树/使用稀疏表) - 图2
19. 1.最大流量
19. 2.福特-富克森
19. 3.埃德蒙·卡普
19. 4. Dinic的算法
19. 5.最小切割最大流量
19. 6.最低成本最大流量
(使用SPFA的Bellman-Ford算法/匈牙利方法)
19. 7.双向匹配(Hopcroft-Karp算法) - 散列
- 复杂
- 霍夫曼编码
- 动态编程
23. 1. 0–1背包问题
23. 2. LCS,LIS
23. 3.子集
23. 4. DP优化
23. 5. Knuth优化
23. 6.分治优化
23. 7.凸包优化 - 几何算法