第 1章 算法之美 1
1.1 打开算法之门 2
1.2 妙不可言—算法复杂性 2
1.3 一棋盘的麦子 8
1.4 神奇的兔子数列 9
1.5 算法学习瓶颈 14
1.6 本章小结 15
第 2章 贪心算法 16
2.1 贪心算法基础 17
2.1.1 贪心本质 17
2.1.2 贪亦有道 17
2.1.3 贪心算法秘籍 18
2.2 最优装载问题 18
2.2.1 问题分析 18
2.2.2 算法设计 18
2.2.3 完美图解 19
2.2.4 算法详解 19
2.2.5 算法分析及优化拓展 20
2.3 阿里巴巴与四十大盗—背包问题 21
2.3.1 问题分析 21
2.3.2 算法设计 22
2.3.3 完美图解 22
2.3.4 算法详解 23
2.3.5 算法分析及优化拓展 24
2.4 高级钟点秘书—会议安排 24
2.4.1 问题分析 25
2.4.2 算法设计 26
2.4.3 完美图解 26
2.4.4 算法详解 27
2.4.5 算法分析及优化拓展 28
2.5 一场说走就走的旅行—最短路径 28
2.5.1 问题分析 29
2.5.2 算法设计 29
2.5.3 完美图解 30
2.5.4 算法详解 33
2.5.5 算法分析及优化拓展 34
2.6 神秘电报密码—霍夫曼编码 36
2.6.1 问题分析 37
2.6.2 算法设计 38
2.6.3 完美图解 38
2.6.4 算法详解 41
2.6.5 算法分析及优化拓展 48
2.7 沟通无限校园网—最小生成树 49
2.7.1 问题分析 49
2.7.2 Prim算法 50
2.7.3 完美图解 51
2.7.4 算法详解 56
2.7.5 算法分析及优化拓展 57
2.7.6 Kruskal算法 57
第3章 分治算法 62
3.1 分治算法基础 63
3.1.1 分而治之 63
3.1.2 分治算法要素 63
3.1.3 分治算法秘籍 63
3.2 二分搜索 64
3.2.1 问题分析 64
3.2.2 算法设计 64
3.2.3 完美图解 65
3.2.4 算法详解 66
3.2.5 算法分析及优化拓展 66
3.3 合并排序 68
3.3.1 问题分析 68
3.3.2 算法设计 68
3.3.3 完美图解 68
3.3.4 算法详解 68
3.3.5 算法分析及优化拓展 71
3.4 快速排序 72
3.4.1 问题分析 72
3.4.2 算法设计 73
3.4.3 完美图解 74
3.4.4 算法详解 75
3.4.5 算法分析及优化拓展 76
3.5 分治算法复杂度求解秘籍 79
3.5.1 递推法 79
3.5.2 递归树 80
3.5.3 大师解法 80
第4章 动态规划算法 84
4.1 动态规划算法基础 85
4.1.1 算法思想 85
4.1.2 算法要素 85
4.1.3 解题秘诀 86
4.2 爬楼梯 86
4.2.1 问题分析 86
4.2.2 算法详解 87
4.2.3 算法分析及优化拓展 88
4.3 最长上升子序列 89
4.3.1 问题分析 89
4.3.2 算法设计 89
4.3.3 完美图解 90
4.3.4 算法详解 91
4.3.5 算法分析及优化拓展 91
4.4 最长公共子序列 93
4.4.1 问题分析 93
4.4.2 算法设计 95
4.4.3 完美图解 96
4.4.4 算法详解 99
4.4.5 算法分析及优化拓展 100
4.5 编辑距离 100
4.5.1 问题分析 101
4.5.2 算法设计 102
4.5.3 完美图解 102
4.5.4 算法详解 105
4.5.5 算法分析及优化拓展 106
4.6 游艇租赁 106
4.6.1 问题分析 106
4.6.2 算法设计 107
4.6.3 完美图解 108
4.6.4 算法详解 111
4.6.5 算法分析及优化拓展 111
4.7 矩阵连乘 112
4.7.1 问题分析 112
4.7.2 算法设计 114
4.7.3 完美图解 115
4.7.4 算法详解 118
4.7.5 算法分析及优化拓展 119
4.8 0/1背包问题 119
4.8.1 问题分析 120
4.8.2 算法设计 121
4.8.3 完美图解 121
4.8.4 算法详解 125
4.8.5 算法分析及优化拓展 125
4.9 没有上司的舞会 128
4.9.1 问题分析 128
4.9.2 算法设计 129
4.9.3 完美图解 129
4.9.4 算法详解 131
4.9.5 算法分析及优化拓展 132
4.10 动态规划算法秘籍 132
第5章 回溯法 134
5.1 深度优先搜索 135
5.1.1 算法思想 135
5.1.2 完美图解 135
5.2 回溯法基础 136
5.2.1 算法思想 136
5.2.2 算法要素 136
5.3 0/1背包问题 138
5.3.1 问题分析 138
5.3.2 算法设计 138
5.3.3 完美图解 140
5.3.4 算法详解 142
5.3.5 算法分析及优化拓展 143
5.4 最大团 144
5.4.1 问题分析 145
5.4.2 算法设计 145
5.4.3 完美图解 147
5.4.4 算法详解 151
5.4.5 算法分析及优化拓展 152
5.5 地图着色 153
5.5.1 问题分析 153
5.5.2 算法设计 153
5.5.3 完美图解 155
5.5.4 算法详解 158
5.5.5 算法分析及优化拓展 159
5.6 n皇后问题 159
5.6.1 问题分析 160
5.6.2 算法设计 160
5.6.3 完美图解 161
5.6.4 算法详解 168
5.6.5 算法分析及优化拓展 168
5.7 最优加工顺序 170
5.7.1 问题分析 170
5.7.2 算法设计 171
5.7.3 完美图解 172
5.7.4 算法详解 176
5.7.5 算法分析及优化拓展 177
5.8 回溯法秘籍 177
第6章 分支限界法 179
6.1 广度优先搜索 180
6.1.1 算法思想 180
6.1.2 完美图解 180
6.2 分支限界法基础 182
6.2.1 算法思想 183
6.2.2 算法步骤 183
6.3 0/1背包问题 183
6.3.1 问题分析 184
6.3.2 算法设计 184
6.3.3 完美图解 185
6.3.4 算法详解 189
6.3.5 算法分析及优化拓展 190
6.4 旅行商问题 194
6.4.1 问题分析 194
6.4.2 算法设计 194
6.4.3 完美图解 195
6.4.4 算法详解 198
6.4.5 算法分析及优化拓展 199
6.5 最优工程布线 200
6.5.1 问题分析 200
6.5.2 算法设计 201
6.5.3 完美图解 201
6.5.4 算法详解 207
6.5.5 算法分析及优化拓展 208
6.6 回溯法与分支限界法的异同 209
第7章 网络流算法 210
7.1 好的规划带来好效益—最大流 211
7.1.1 增广路算法 212
7.1.2 完美图解 213
7.2 最短增广路—EK算法 215
7.2.1 算法设计 215
7.2.2 完美图解 216
7.2.3 算法详解 221
7.2.4 算法分析 223
7.3 峰回路转—Dinic算法 223
7.3.1 算法设计 223
7.3.2 完美图解 223
7.3.3 算法详解 225
7.3.4 算法分析 226
7.3.5 当前弧优化 226
7.4 一蹴而就—ISAP算法 227
7.4.1 算法设计 228
7.4.2 完美图解 229
7.4.3 算法详解 231
7.4.4 算法分析 232
7.5 最小费用最大流—最小费用路算法 232
7.5.1 算法设计 233
7.5.2 完美图解 233
7.5.3 算法详解 234
7.5.4 算法分析 235
7.5.5 消圈算法 235
7.6 最大匹配问题 237
7.6.1 问题分析 237
7.6.2 算法设计 238
7.6.3 完美图解 238
7.6.4 算法详解 239
7.6.5 算法分析 239
7.6.6 匈牙利算法 239
7.7 试题库问题 242
7.7.1 问题分析 242
7.7.2 算法设计 242
7.7.3 完美图解 243
7.7.4 算法详解 244
7.7.5 算法分析 245
7.8 最大收益问题 245
7.8.1 问题分析 245
7.8.2 算法设计 246
7.8.3 完美图解 247
7.8.4 算法详解 249
7.8.5 算法分析 249
7.9 旅游路线问题 249
7.9.1 问题分析 250
7.9.2 算法设计 251
7.9.3 完美图解 251
7.9.4 算法详解 252
7.9.5 算法分析 254
7.10 网络流问题求解秘籍 254
第8章 实用算法 255
8.1 启发式搜索在游戏中的应用 256
8.1.1 A*算法 256
8.1.2 IDA*算法 256
8.1.3 八数码游戏 257
8.2 多模匹配算法在敏感词过滤中的应用 264
8.2.1 字典树 265
8.2.2 AC自动机 269
8.2.3 敏感词过滤 272
8.3 LRU缓存淘汰算法的应用场景 273
8.3.1 LRU算法 274
8.3.2 哈希链表 275
8.3.3 算法详解 277
8.3.4 算法分析 280
8.4 高频面试算法 280
8.4.1 快慢指针 280
8.4.2 栈的最小值 288
8.4.3 滑动窗口中的最大值 289
8.4.4 零钱兑换 293
8.4.5 股票买卖秘籍 295
附录A 特征方程和通项公式 299
附录B sort函数 302
附录C 优先队列 305
附录D 邻接表 312
附录E 并查集 318
附录F 四边不等式 323
附录G 排列树 327
附录H 贝尔曼规则 339
附录I 增广路中每条边成为关键边的次数 342
展开