当前位置:网站首页>推荐书籍 > 正文 >>

高频算法设计

图书信息

作者:朱洪银编著编

出版社:中国水利水电出版社

定价:89.80

ISBN:9787522636832

出版时间:2025-10-01

分类:图书,行业职业,计算机,工具书

商品介绍

目录

第1章 旋转排序数组 1

视频讲解:16集

1.1 搜索旋转排序数组 1

1.2 螺旋矩阵 3

1.3 搜索二维矩阵 6

1.4 寻找峰值Ⅰ 8

1.5 旋转数组 10

1.6 旋转字符串 11

1.7 二分查找 13

1.8 对x开根Ⅰ 15

1.9 寻找峰值Ⅱ 16

1.10 在大数组中查找特定元素 18

1.11 寻找目标最后出现位置 20

1.12 对x开根Ⅱ 22

1.13 搜索旋转数组中的最小元素 23

1.14 在排序数组中查找数字 24

第2章 链表操作 26

视频讲解:23集

2.1 删除链表的倒数第n个节点 26

2.2 有序链表去重(保留不重复的元素) 28

2.3 有序链表去重(使每个元素只出现一次) 29

2.4 划分链表 31

2.5 反转链表Ⅰ 32

2.6 环形链表 34

2.7 相交链表 36

2.8 反转链表Ⅱ 38

2.9 回文链表 39

2.10 删除链表中的指定节点 41

2.11 奇偶链表 43

2.12 两数相加 44

2.13 约瑟夫问题 47

2.14 链表排序 48

2.15 重排链表 51

2.16 合并K个排序链表 53

2.17 复制带随机指针的链表 54

2.18 搜索链表倒数第n个节点 56

2.19 链表求和 57

2.20 区间反转链表 59

2.21 分割链表 61

第3章 前缀操作 64

视频讲解:6集

3.1 搜索优选子数组 64

3.2 除自身以外数组的乘积 6

3.3 按权重随机选择 68

3.4 查找和为0的子数组 70

3.5 子数组求和 71

3.6 查找和为0的子矩阵 73

第4章 双指针算法 76

视频讲解:19集

4.1 寻找两个有序数组的中位数 76

4.2 寻找最长公共前缀 78

4.3 寻找最小覆盖子串Ⅰ 80

4.4 合并两个有序数组 82

4.5 检查缩写字 84

4.6 寻找最小覆盖子串Ⅱ 86

4.7 合并排序数组 88

4.8 接雨水Ⅰ 90

4.9 三角形计数 92

4.10 寻找最长无重复字符的子串 93

4.11 寻找和大于s的最小子数组 95

4.12 寻找匹配目标和的整数对 96

4.13 去除重复元素 98

4.14 移动0 100

4.15 寻找两个数组的交集Ⅰ 102

4.16 寻找两个数组的交集Ⅱ 104

4.17 寻找小于或等于目标值的整数对 105

4.18 调整数组顺序 107

4.19 KMP算法 109

第5章 动态规划 112

5.1 寻找无重复字符的最长子串 112

5.2 寻找最长回文子串 114

5.3 统计不同路径 117

5.4 求最小路径和 118

5.5 爬楼梯 120

5.6 编辑距离 121

5.7 求解码方式数量 123

5.8 寻找优选正方形 124

5.9 Nim游戏 126

5.10 兑换零钱 127

5.11 寻找矩阵中的最长递增路径 129

5.12 鸡蛋掉落 131

5.13 寻找最长公共子序列 134

5.14 寻找最长递增子序列 136

5.15 寻找最长公共子串 137

5.16 找出k个数之和等于目标值的=组合数 139

5.17 背包问题Ⅰ 141

5.18 吹气球 142

5.19 寻宝之旅Ⅰ 144

5.20 硬币排成线Ⅰ 146

5.21 硬币排成线Ⅱ 148

5.22 硬币排成线Ⅲ 150

5.23 寻找最长递增连续子序列Ⅰ 152

5.24 连续子数组求和 154

5.25 石子合并 156

5.26 寻宝之旅Ⅱ 158

5.27 背包问题Ⅱ 160

5.28 寻找优选矩阵 161

5.29 0-1背包 164

第6章 生成所有可能的组合 166

6.1 生成括号 166

6.2 数字组合Ⅰ 168

6.3 全排列Ⅰ 171

6.4 全排列Ⅱ 172

6.5 子集Ⅰ 174

6.6 子集Ⅱ 176

6.7 为运算表达式设计优先级 177

6.8 数字组合Ⅱ 179

第7章 宽度优先搜索 182

7.1 删除无效的括号 182

7.2 计算岛屿的周长 184

7.3 僵尸矩阵 186

7.4 计算三维形体的表面积 189

7.5 计算岛屿的个数 191

7.6 计算骑士的最短移动路线 193

第8章 深度优先搜索 197

8.1 复原IP地址 197

8.2 计算岛屿的优选面积 199

8.3 分割回文串 202

8.4 寻找最长递增连续子序列Ⅱ 203

第9章 反转序列 206

9.1 反转整数 206

9.2 判断回文数 208

9.3 旋转图像 209

9.4 验证回文串 210

9.5 反转字符串中的单词 211

9.6 反转字符串Ⅰ 213

9.7 反转字符串Ⅱ 215

第10章 买卖股票 217

10.1 买卖股票的很好时机Ⅰ 217

10.2 买卖股票的很好时机Ⅱ 219

第11章 字符串匹配 221

11.1 实现strStr()函数 221

11.2 通配符匹配 222

第12章 特殊数据结构 225

12.1 设计LRU缓存机制 225

12.2 设计最小栈 229

12.3 用栈实现队列 231

12.4 查找数据流的中位数 233

12.5 设计推特系统 235

12.6 基于时间的键值存储 238

12.7 搜索单词 240

12.8 滑动窗口的中位数 243

12.9 摊平嵌套的列表 245

12.10 计算两数之和 247

12.11 添加与查找单词 249

第13章 排序解法 252

13.1 合并区间 252

13.2 寻找优选数 254

13.3 汇总区间 255

13.4 寻找超级丑数 257

13.5 寻找前k个高频元素 258

13.6 寻找前k个高频单词 260

13.7 寻找最接近原点的k个点 261

13.8 寻找第k大元素 263

13.9 寻找和优选的连续子数组 265

13.10 寻找大楼外轮廓线 266

13.11 接雨水Ⅱ 270

13.12 基于比较函数的数组元素匹配问题 272

13.13 寻找排序矩阵中第k小的整数 274

13.14 寻找两个排序数组和的第k小值 276

13.15 摆动排序 277

13.16 寻找n个数组中的第k大元素 279

13.17 字符串排序 281

13.18 寻找最小的k个数 283

13.19 冒泡排序 285

13.20 插入排序 286

13.21 快速排序 287

13.22 归并排序 289

13.23 堆化 290

13.24 最小堆 292

第14章 图 295

14.1 克隆图 296

14.2 火星词典 298

14.3 计算网络延迟时间 301

14.4 寻找所有可能路径 305

14.5 判断二分图 307

14.6 最小生成树 309

14.7 拓扑排序 312

14.8 判断无向图是否为树 314

14.9 搜索图中节点 317

第15章 二叉树 319

15.1 中序遍历二叉树 320

15.2 判断二叉搜索树 321

15.3 判断对称二叉树 323

15.4 层序遍历二叉树Ⅰ 325

15.5 “之”字形遍历二叉树 327

15.6 计算二叉树的优选深度 329

15.7 重建二叉树 331

15.8 层序遍历二叉树Ⅱ 332

15.9 将有序数组转换为二叉搜索树 334

15.10 判断平衡二叉树 335

15.11 计算二叉树的路径和Ⅰ 337

15.12 计算二叉树的路径和Ⅱ 339

15.13 前序遍历二叉树 341

……

内容简介

在AI时代,尽管大模型能够帮助我们解决诸多复杂问题,但掌握基本的算法原理仍然是不可或缺的。只有深入理解这些基础原理,才能作出正确的设计决策,形成合理的判断,并确保技术应用的准确性和有效性。如果缺乏这些基础知识,我们就将难以真正驾驭AI技术,更无法发挥其优选价值。

《高频算法设计》聚焦算法编程核心能力培养,以 “实践+领悟”为导向,通过Python代码实现、详尽算法解释及配套视频教程,帮助读者掌握算法逻辑与原理,提升问题解决与逻辑思维能力,适用于算法学习与实践需求。全书按解题方法分为15章,涵盖旋转排序数组、链表操作、动态规划、深度/宽度优先搜索等算法。题目遵循“题目描述-代码实现-算法解释”结构,内容由易到难,前4章为基础算法,后续章节逐步引入较为复杂的算法。

本书主要面向计算机专业学生、算法编程岗位求职者及算法竞赛参与者,广泛适用于初级至中级水平的算法编程学习者。

作者简介

朱洪银,彩讯股份AI产研总监,博士毕业于中国科学院自动化研究所,清华大学知识工程实验室博士后;曾担任奇虎360算法专家、浪潮集团主任工程师,并曾在高端服务器系统全国重点实验室担任研究员;在多智能体协同、知识图谱、自然语言处理、AI搜索、AI安全和高性能计算等多个前沿技术领域具备丰富的研发与实践经验,相关成果已在多个实际场景中落地;迄今已发表SCI/EI论文20余篇,申请发明专利20余项。

推荐书籍