大家好,给大家分享一下你也能看懂的python算法书 pdf,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
第1章 编程基础1
1.1 变量1
1.1.1 输出和输入2
1.1.2 简单变量类型3
1.1.3 数学计算6
1.1.4 位运算7
1.1.5 使用字符串11
1.2 三大结构15
1.2.1 循序结构15
1.2.2 分支结构16
1.2.3 条件判断18
1.2.4 应用分支结构20
1.2.5 循环结构21
1.2.6 continue和break23
1.2.7 应用循环结构24
1.2.8 结构的嵌套26
1.3 列表27
1.3.1 定义列表27
1.3.2 对元素进行操作28
1.3.3 列表的顺序31
1.3.4 列表内置函数33
1.3.5 截取和拼接列表36
1.3.6 字符串、元组和列表38
1.3.7 用循环遍历列表40
1.3.8 字典简介41
1.4 函数43
1.4.1 定义子函数43
1.4.2 主函数44
1.4.3 调用函数45
1.4.4 全局变量47
1.4.5 函数的运用48
第2章 双指针问题53
2.1 数组合并53
2.1.1 合并有序数组53
2.1.2 最终代码56
2.2 二分查找56
2.2.1 什么是二分查找57
2.2.2 问题求解58
2.2.3 最终代码60
2.3 链表60
2.3.1 什么是单链表60
2.3.2 建立单链表61
2.3.3 建立双链表63
2.3.4 双向输出双链表65
2.3.5 向单链表中添加元素66
2.3.6 向双链表中添加元素69
2.3.7 删除列表中的元素71
第3章 哈希算法75
3.1 什么是哈希75
3.2 两个数的和78
3.2.1 问题求解178
3.2.2 解法1的最终代码80
3.2.3 问题求解281
3.2.4 解法2的最终代码82
3.3 单词模式匹配82
3.3.1 问题求解83
3.3.2 最终代码85
3.4 猜词游戏85
3.4.1 问题求解87
3.4.2 最终代码88
3.5 神奇的词根89
3.5.1 问题求解90
3.5.2 最终代码92
第4章 深度优先遍历93
4.1 什么是深度优先遍历93
4.2 二叉树95
4.2.1 二叉树的类型95
4.2.2 二叉树的相关术语96
4.2.3 二叉树的节点代码97
4.2.4 二叉树的遍历顺序97
4.2.5 深度优先遍历与广度优先遍历97
4.3 怎么抓住小偷98
4.3.1 解题思路98
4.3.2 从思路到代码102
4.4 二叉树中的最大路径和102
4.4.1 解题思路103
4.4.2 完整代码112
4.5 最大的岛屿113
4.5.1 解题思路113
4.5.2 完整代码116
第5章 广度优先遍历118
5.1 什么是广度优先遍历118
5.2 选课的智慧120
5.2.1 广度优先遍历121
5.2.2 问题求解122
5.2.3 最终代码124
5.3 寻找制高点125
5.3.1 问题求解126
5.3.2 集合129
5.3.3 最终代码130
5.4 合法的括号131
5.4.1 问题求解131
5.4.2 最终代码135
5.5 树的右侧136
5.5.1 问题求解136
5.5.2 最终代码139
第6章 回溯算法141
6.1 什么是回溯141
6.2 遍历所有排序方式142
6.2.1 问题求解142
6.2.2 最终代码144
6.3 经典问题的组合147
6.3.1 问题求解147
6.3.2 最终代码149
6.4 查找单词问题151
6.4.1 问题求解152
6.4.2 最终代码155
6.5 八皇后问题157
6.5.1 问题求解158
6.5.2 最终代码160
6.6 教你解数独164
6.6.1 问题求解165
6.6.2 最终代码168
第7章 贪心算法172
7.1 硬币找零问题173
7.1.1 问题描述173
7.1.2 最终代码175
7.2 活动安排问题175
7.2.1 问题描述176
7.2.2 最终代码177
7.3 哈夫曼编码178
7.3.1 问题描述178
7.3.2 哈夫曼树179
7.3.3 贪心选择性质181
7.3.4 最优子结构性质182
7.3.5 最终代码183
第8章 动态规划算法185
8.1 爬楼梯问题185
8.1.1 问题描述186
8.1.2 最终代码188
8.2 矿工挖矿问题189
8.2.1 问题描述189
8.2.2 最终代码195
8.3 背包问题195
8.3.1 问题描述195
8.3.2 问题实例196
8.3.3 最终代码201
8.4 最长递归子序列问题202
8.4.1 问题描述202
8.4.2 改进算法204
8.4.3 最终代码205
第9章 最短路径问题207
9.1 迪可斯特朗算法207
9.1.1 术语释义208
9.1.2 问题示例:最短公交线路208
9.1.3 图与节点的定义209
9.1.4 把图用代码“画”出来210
9.1.5 算法核心:两个节点集合210
9.1.6 算法核心:循环210
9.1.7 输出路线211
9.1.8 通过示例理解算法211
9.1.9 完整代码展示214
9.2 Floyd算法216
9.2.1 算法核心:两个矩阵216
9.2.2 算法核心:通过中介点缩短距离217
9.2.3 通过示例理解算法218
9.2.4 完整代码222
9.3 A*算法223
9.3.1 算法核心:迪可斯特朗算法223
9.3.2 算法核心:预估函数224
9.3.3 算法核心:选择预估函数226
9.3.4 A*算法的兄弟们226
第10章 分治算法227
10.1 什么是分治227
10.2 归并排序228
10.2.1 递归法与迭代法228
10.2.2 递归法描述229
10.2.3 迭代法描述232
10.2.4 最终代码233
10.3 连续子列表的最大和235
10.3.1 解题思路235
10.3.2 最终代码237
10.4 几何问题之凸包238
10.4.1 问题求解238
10.4.2 最终代码240
10.5 数学问题之多项式乘法242
10.5.1 问题求解242
10.5.2 最终代码245