《算法通关之路》路志鹏 | PDF下载|ePub下载
内容简介 · · · · · ·
这是一本图文并茂的力扣(LeetCode)题解书,旨在让广大读者理解数据结构和算法的必备知识,掌握解决各类经典题目的基本技能,陪伴读者攻克算法难关。
《算法通关之路》通过算法题解的形式讲解了基本数据结构和算法知识,包括分治、贪心、回溯和动态规划等算法思想,二分查找、深度优先遍历和广度优先遍历、双指针、滑动窗口、位运算、并查集等解题思路和技巧,以及通用解题“套路”和解题模板等内容,引导读者了解并掌握解决算法题目的方式、方法,旨在循序渐进地提高读者应对算法题目的能力。
《算法通关之路》适合数据结构和算法知识的学习者,希望学习如何解算法题或正在刷题的计算机行业从业者,也可作为大、中专院校相关专业的辅导参考书。
作者简介 · · · · · ·
本书共有5位作者,他们和另外4名审阅者组建了一个小团队,合作完成此书。团队成员大都毕业于985、211院校计算机专业,他们在解算法题、参加算法竞赛和力扣(LeetCode)周赛等过程中积攒的丰富经验都汇集于此书当中。
路志鹏
网名lucifer,软件架构师;刷题插件leetcode-cheatsheet作者;微信公众号“力扣加加”作者;擅长用通俗易懂的语言讲述算法知识,先后发表过十几万字的算法题解,在GitHub上获星数万。
俞俊
毕业于吉林大学,喜欢数学,热爱算法,闲暇时出没于力扣(LeetCode)、Codeforces;曾创业,目前主要从事前端架构方面的工作。
海凡路
硕士研究生,毕业于英国约克大学,曾就职于甲骨文软件研究开发中心,现任某金融机构软件开发项目经理。
黄乐兴
厦门大学硕士研究生在读,研究方向为人工智能;西二在线工作室第A届负责人;力扣(LeetCode)刷题量770+,周赛最高排名21。
李冰
高级研发工程师,现任某外企视频编解码组负责人,对于软硬件视频编解码流程优化有着丰富的实践经验;目前主要从事视频压缩算法、视频质量优化的研究工作。
目录 · · · · · ·
1.1 学习算法需要数学知识吗 1
1.2 基础数据结构和算法 2
1.3 复杂度分析 3
总结 12
第2章 数学之美 13
2.1 两数之和 14
2.2 三数之和 17
2.3 四数之和 18
2.4 四数相加II 22
2.5 最接近的三数之和 23
2.6 最大子序列和 25
2.7 最大数 30
2.8 分数到小数 32
2.9 最大整除子集 34
2.10 质数排列 36
总结 38
第3章 回文的艺术 40
3.1 验证回文字符串Ⅱ 40
3.2 回文链表 43
3.3 回文数 45
3.4 最长回文子串 47
3.5 最长回文子序列 49
3.6 超级回文数 52
总结 55
第4章 游戏之乐 57
4.1 外观数列(报数) 57
4.2 24点 60
4.3 数独游戏 66
4.4 生命游戏 74
总结 77
第5章 深度优先遍历和广度优先遍历 78
5.1 深度优先遍历 78
5.2 广度优先遍历 80
5.3 路径和系列问题 81
5.4 岛屿问题 90
总结 99
第6章 二分法 100
6.1 二分查找 100
6.2 寻找旋转排序数组中的最小值 103
6.3 爱吃香蕉的珂珂 105
6.4 x的平方根 107
6.5 寻找峰值 110
6.6 分割数组的最大值 113
总结 116
第7章 位运算 117
7.1 位1的个数 118
7.2 实现加法 120
7.3 整数替换 122
7.4 只出现一次的数字 125
总结 131
第8章 设计 133
8.1 最小栈 133
8.2 实现 Trie(前缀树) 140
8.3 LRU 缓存机制 144
8.4 LFU 缓存 148
8.5 设计跳表 153
总结 161
第9章 双指针 162
9.1 头/尾指针 164
9.2 快慢指针 169
总结 180
第10章 动态规划 181
10.1 爬楼梯 184
10.2 打家劫舍系列 186
10.3 不同路径 193
10.4 零钱兑换 197
总结 202
第11章 滑动窗口 203
11.1 滑动窗口最大值 204
11.2 最小覆盖子串 207
11.3 替换后的最长重复字符 211
11.4 字符串的排列 214
总结 216
第12章 博弈问题 218
12.1 石子游戏 218
12.2 预测赢家 223
12.3 Nim 游戏 228
12.4 猜数字大小II 231
总结 234
第13章 股票问题 235
13.1 买卖股票的最佳时机 235
13.2 买卖股票的最佳时机II 238
13.3 买卖股票的最佳时机(含手续费) 240
13.4 买卖股票的最佳时机(含冷冻期) 245
13.5 买卖股票的最佳时机IV 248
总结 251
第14章 分治法 253
14.1 合并k个排序链表 254
14.2 数组中的第k个最大元素 259
14.3 搜索二维矩阵 II 264
总结 273
第15章 贪心法 275
15.1 分发饼干 275
15.2 跳跃游戏 277
15.3 任务调度器 281
15.4 分发糖果 283
15.5 无重叠区间 286
总结 288
第16章 回溯法 289
16.1 组合总和 I 289
16.2 组合总和 II 295
16.3 子集 298
16.4 全排列 299
16.5 解数独 301
总结 303
第17章 一些有趣的题目 305
17.1 求众数 II 305
17.2 柱状图中最大的矩形 308
17.3 一周中的第几天 313
17.4 水壶问题 316
17.5 可怜的小猪 320
总结 324
第18章 一些通用解题模板 325
18.1 二分法 325
18.2 回溯法 328
18.3 并查集 329
18.4 BFS 332
18.5 滑动窗口 333
18.6 数学 335
总结 338
第19章 融会贯通 339
19.1 循环移位问题 339
19.2 编辑距离 348
19.3 第k问题 356
总结 368
第20章 解题技巧和面试技巧 369
20.1 看限制条件 370
20.2 预处理 379
20.3 不要忽视暴力法 387
20.4 降维与状态压缩 394
20.5 猜测tag 401
总结 402
· · · · · ·
发表回复
要发表评论,您必须先登录。