《算法大爆炸:面试通关步步为营》杨峰 | PDF下载|ePub下载
类别: 科技
内容简介 · · · · · ·
《算法大爆炸:面试通关步步为营》旨在帮助读者筑牢数据结构和算法的基础,提升职场竞争力。本书代码采用Java语言编写,分为上、下两篇,共15章。其中,第1~9章为上篇,讲解数据结构和算法基础,为读者全面梳理基本知识,内容涵盖线性结构、树结构、图结构、排序与查找、穷举法、递归算法、贪心算法、动态规划、回溯法;第10~15章为下篇,收集了50多道经典且有趣的大厂面试真题,针对每道题都给出了详细的分析和解答,帮助读者全面提升解决实际问题的能力,同时为读者准备笔试、面试提供帮助。
《算法大爆炸:面试通关步步为营》坚持“夯实基础、注重实践、举一反三”的理念,内容丰富翔实、妙趣横生,讲解深入浅出、清晰到位。希望能够陪伴读者在轻松愉快的氛围中学习。
作者简介 · · · · · ·
杨峰,资深高级工程师。多年来致力于算法与数学方法的研究,发表了大量有趣而经典的算法文章,擅长用生动的语言阐述算法的本质问题。著有畅销书《C语言完全手册》《妙趣横生的算法(C语言版)》《程序员面试笔记 C/C++、算法、数据结构篇》《Java程序员面试笔记》《那些令人脑洞大开的数学》。
目录 · · · · · ·
上篇 数据结构与算法基础
第1章 线性结构 2
1.1 数组 2
1.1.1 数组的基本概念 2
1.1.2 数组的定义 3
1.1.3 数组的基本操作 5
1.1.4 数组的性能分析 11
1.1.5 案例分析 12
1.2 链表 19
1.2.1 链表的基本概念 19
1.2.2 链表的定义 20
1.2.3 链表的基本操作 21
1.2.4 链表的性能分析 27
1.2.5 不同形态的链表结构 28
1.2.6 案例分析 29
1.3 栈 38
1.3.1 栈的基本概念 38
1.3.2 栈的定义 38
1.3.3 栈的基本操作 40
1.3.4 案例分析 44
1.4 队列 50
1.4.1 队列的基本概念 50
1.4.2 队列的定义 50
1.4.3 队列的基本操作 52
1.4.4 双端队列 56
1.4.5 实战分析 56
第2章 树结构 64
2.1 树的基本概念 64
2.2 二叉树 65
2.3 二叉树的遍历 68
2.4 创建二叉树 71
2.5 二叉排序树与AVL树 76
2.6 案例分析 81
第3章 图结构 89
3.1 图的基本概念 89
3.2 图的存储形式 92
3.3 邻接表的实现 94
3.4 图的遍历 97
3.5 案例分析 103
第4章 排序与查找 109
4.1 直接插入排序 109
4.2 冒泡排序 112
4.3 简单选择排序 114
4.4 快速排序 117
4.5 希尔排序 120
4.6 堆排序 122
4.7 各种排序算法的比较 129
4.8 折半查找算法 130
4.9 案例分析 132
第5章 穷举法 139
5.1 穷举法的基本思想 139
5.2 案例分析 142
第6章 递归算法 149
6.1 递归算法的基本思想 149
6.2 案例分析 150
第7章 贪心算法 159
7.1 贪心算法的基本思想 159
7.2 案例分析 160
第8章 动态规划 168
8.1 动态规划算法的基本思想 168
8.2 案例分析 173
第9章 回溯法 185
9.1 回溯法的基本思想 185
9.2 案例分析 188
下篇 大厂经典面试题详解
第10章 数组和字符串类面试题 200
10.1 数组元素的奇偶重排 200
10.2 不改变顺序的数组元素奇偶重排 203
10.3 有序数组的两数之和 206
10.4 三数之和 209
10.5 两个有序数组的交集 214
11.6 最长公共前缀问题 219
10.7 最长公共子串问题 221
10.8 长度最小的连续子数组 224
10.9 最长无重复子串 232
10.10 删除字符数组中特定字符 236
10.11 最短连续子数组问题 240
10.12 字符数组的内容重排 242
10.13 字符串数组类面试题解题技巧 246
第11章 线性结构类面试题 249
11.1 约瑟夫环 249
11.2 单链表的逆置 253
11.3 判断链表中是否存在循环结构 256
11.4 判断两个链表是否相交 260
11.5 判断回文链表 265
11.6 最小栈问题 269
11.7 每日温度 275
11.8 LRU缓存的设计 281
11.9 线性结构类面试题解题技巧 291
第12章 二叉树类面试题 293
12.1 完全二叉树的判定 293
12.2 二叉树节点的最大距离 298
12.3 打印二叉树中的重复子树 302
12.4 还原二叉树 307
12.5 二叉树类面试题解题技巧 312
第13章 递归和动态规划系列面试题 315
13.1 分解质因数 315
13.2 拨号盘字母组合 317
13.3 组合的总和 322
13.4 在大矩阵中找k 327
13.5 跳跃游戏 332
13.6 机器人的最小路径长度 336
13.7 聪明的侦探 342
第14章 穷举法和回溯法系列面试题 347
14.1 数组元素之差的最小值 347
14.2 数的分组问题 350
14.3 最佳的碰面地点 354
14.4 多点共线问题 360
14.5 复原IP地址 369
14.6 矩阵中的相邻数 372
14.7 被包围的区域 377
第15章 其他类型算法面试题 382
15.1 相差多少天 382
15.2 万年历 386
15.3 1的数量 389
15.4 找出人群中唯一的“单身者” 392
15.5 找出人群中3个“单身者”中的任意一个 393
15.6 空瓶换汽水问题 397
15.7 渔夫捕鱼问题 399
15.8 亲密数 401
15.9 筛选出100以内的素数 403
15.10 寻找丑数 405
15.11 组成最小的数 410
15.12 数字翻译器 413
15.13 计算π值 416
· · · · · ·
第1章 线性结构 2
1.1 数组 2
1.1.1 数组的基本概念 2
1.1.2 数组的定义 3
1.1.3 数组的基本操作 5
1.1.4 数组的性能分析 11
1.1.5 案例分析 12
1.2 链表 19
1.2.1 链表的基本概念 19
1.2.2 链表的定义 20
1.2.3 链表的基本操作 21
1.2.4 链表的性能分析 27
1.2.5 不同形态的链表结构 28
1.2.6 案例分析 29
1.3 栈 38
1.3.1 栈的基本概念 38
1.3.2 栈的定义 38
1.3.3 栈的基本操作 40
1.3.4 案例分析 44
1.4 队列 50
1.4.1 队列的基本概念 50
1.4.2 队列的定义 50
1.4.3 队列的基本操作 52
1.4.4 双端队列 56
1.4.5 实战分析 56
第2章 树结构 64
2.1 树的基本概念 64
2.2 二叉树 65
2.3 二叉树的遍历 68
2.4 创建二叉树 71
2.5 二叉排序树与AVL树 76
2.6 案例分析 81
第3章 图结构 89
3.1 图的基本概念 89
3.2 图的存储形式 92
3.3 邻接表的实现 94
3.4 图的遍历 97
3.5 案例分析 103
第4章 排序与查找 109
4.1 直接插入排序 109
4.2 冒泡排序 112
4.3 简单选择排序 114
4.4 快速排序 117
4.5 希尔排序 120
4.6 堆排序 122
4.7 各种排序算法的比较 129
4.8 折半查找算法 130
4.9 案例分析 132
第5章 穷举法 139
5.1 穷举法的基本思想 139
5.2 案例分析 142
第6章 递归算法 149
6.1 递归算法的基本思想 149
6.2 案例分析 150
第7章 贪心算法 159
7.1 贪心算法的基本思想 159
7.2 案例分析 160
第8章 动态规划 168
8.1 动态规划算法的基本思想 168
8.2 案例分析 173
第9章 回溯法 185
9.1 回溯法的基本思想 185
9.2 案例分析 188
下篇 大厂经典面试题详解
第10章 数组和字符串类面试题 200
10.1 数组元素的奇偶重排 200
10.2 不改变顺序的数组元素奇偶重排 203
10.3 有序数组的两数之和 206
10.4 三数之和 209
10.5 两个有序数组的交集 214
11.6 最长公共前缀问题 219
10.7 最长公共子串问题 221
10.8 长度最小的连续子数组 224
10.9 最长无重复子串 232
10.10 删除字符数组中特定字符 236
10.11 最短连续子数组问题 240
10.12 字符数组的内容重排 242
10.13 字符串数组类面试题解题技巧 246
第11章 线性结构类面试题 249
11.1 约瑟夫环 249
11.2 单链表的逆置 253
11.3 判断链表中是否存在循环结构 256
11.4 判断两个链表是否相交 260
11.5 判断回文链表 265
11.6 最小栈问题 269
11.7 每日温度 275
11.8 LRU缓存的设计 281
11.9 线性结构类面试题解题技巧 291
第12章 二叉树类面试题 293
12.1 完全二叉树的判定 293
12.2 二叉树节点的最大距离 298
12.3 打印二叉树中的重复子树 302
12.4 还原二叉树 307
12.5 二叉树类面试题解题技巧 312
第13章 递归和动态规划系列面试题 315
13.1 分解质因数 315
13.2 拨号盘字母组合 317
13.3 组合的总和 322
13.4 在大矩阵中找k 327
13.5 跳跃游戏 332
13.6 机器人的最小路径长度 336
13.7 聪明的侦探 342
第14章 穷举法和回溯法系列面试题 347
14.1 数组元素之差的最小值 347
14.2 数的分组问题 350
14.3 最佳的碰面地点 354
14.4 多点共线问题 360
14.5 复原IP地址 369
14.6 矩阵中的相邻数 372
14.7 被包围的区域 377
第15章 其他类型算法面试题 382
15.1 相差多少天 382
15.2 万年历 386
15.3 1的数量 389
15.4 找出人群中唯一的“单身者” 392
15.5 找出人群中3个“单身者”中的任意一个 393
15.6 空瓶换汽水问题 397
15.7 渔夫捕鱼问题 399
15.8 亲密数 401
15.9 筛选出100以内的素数 403
15.10 寻找丑数 405
15.11 组成最小的数 410
15.12 数字翻译器 413
15.13 计算π值 416
· · · · · ·
发表回复
要发表评论,您必须先登录。