书刊介绍
《Python算法指南:程序员经典算法分析与实现》内容简介
本书以人工智能发展为时代背景,通过实际案例应用描述算法,提供了较为详细的实战方案,以便深度学习。
本书内容从算法上分为数学、搜索、回溯、递归、排序、迭代、贪心、分治和动态规划等;从数据结构上分为字符串、数组、指针、区间、队列、矩阵、堆栈、链表、哈希表、线段树、二叉树、二叉搜索树和图结构等。本书针对经典算法,结合相关的数据结构,将描述问题、问题示例、代码实现以及运行结果相结合,语言简洁,深入浅出,通俗易懂,不仅适合对Python编程有兴趣的科研人员,也适合作为高等院校的参考教材。
李永华,现执教于北京邮电大学,拥有超过10年的嵌入式开发经验,致力于物联网、云计算与大数据的研究工作。在教学中善于以兴趣为导向,激发学生的创造性;以素质为基础,提高自身教学水平;以科研为手段,促进教学理念的转变。在研发及教学实践中指导学生实现300个创新案例,参与了30余项国家级课题与企业课题的研究工作,在国内外学术期刊以及会议发表论文60余篇,申请专利40余项,出版教材10余部。作品目录
内容简介
作者简介
前言
PREFACE
例1、完美平方
例2、判断平方数
例3、检测2的幂次
例4、求平方根
例5、x的n次幂
例6、快速幂
例7、四数乘积
例8、将整数A转换为B
例9、罗马数字转换为整数
例10、整数转换为罗马数字
例11、整数排序
例12、整数替换
例13、两个整数相除
例14、整数加法
例15、合并数字
例16、数字判断
例17、下一个稀疏数
例18、滑动窗口的最大值
例19、创建最大数
例20、最接近的k个数
例21、交错正负数
例22、下一个更大的数
例23、落单的数Ⅰ
例24、落单的数Ⅱ
例25、落单的数Ⅲ
例26、落单的数Ⅳ
例27、对称数
例28、镜像数字
例29、统计比给定整数小的数
例30、统计前面比自己小的数
例31、阶乘尾部零的个数
例32、统计数字
例33、删除数字
例34、寻找丢失的数
例35、丑数Ⅰ
例36、丑数Ⅱ
例37、超级丑数
例38、两数之和Ⅰ
例39、两数之和Ⅱ
例40、两数之和Ⅲ
例41、最接近的三数之和
例42、三数之和为零
例43、四数之和为定值
例44、骰子求和
例45、k数之和
例46、二进制求和
例47、各位相加
例48、矩阵元素ZigZag返回
例49、子矩阵和为零
例50、搜索二维矩阵Ⅰ
例51、搜索二维矩阵Ⅱ
例52、矩阵归零
例53、DNA重复问题
例54、螺旋矩阵
例55、矩阵走路问题
例56、稀疏矩阵乘法
例57、直方图中最大的矩形面积
例58、最大矩形
例59、排序矩阵中的从小到大第k个数
例60、最大和子数组
例61、两个不重叠子数组最大和
例62、k个不重叠子数组最大和
例63、两个不重叠的子数组最大差
例64、两数组的交集Ⅰ
例65、两数组的交集Ⅱ
例66、乘积小于k的子数组
例67、最小和子数组
例68、连续子数组最大和
例69、子数组之和为零
例70、数组划分
例71、数组中的k-diff对的数量
例72、删除排序数组中的重复数字
例73、和大于定值的最小长度子数组
例74、最大平均值子数组
例75、搜索旋转排序数组中的最小值Ⅰ
例76、搜索旋转排序数组中的最小值Ⅱ
例77、搜索旋转排序数组目标值Ⅰ
例78、搜索旋转排序数组目标值Ⅱ
例79、和最接近零的子数组
例80、两个整数数组的最小差
例81、数组中的相同数字
例82、翻转数组
例83、奇偶分割数组
例84、判断字符串中的重复字符
例85、最长无重复字符的子字符串
例86、最长回文子字符串
例87、将字符串转换为整数
例88、字符串查找
例89、子字符串的判断
例90、翻转字符串中的单词
例91、乱序字符串
例92、比较字符串
例93、攀爬字符串
例94、交叉字符串
例95、字符串解码
例96、最小子字符串覆盖
例97、连接两个字符串中的不同字符
例98、字符串加法
例99、字符串乘法
例100、前k个偶数长度的回文数之和
例101、分割回文串Ⅰ
例102、分割回文串Ⅱ
例103、回文排列Ⅰ
例104、回文排列Ⅱ
例105、回文链表
例106、有效回文串
例107、回文对
例108、字模式
例109、k组翻转链表
例110、删除排序链表中的重复元素Ⅰ
例111、删除排序链表中的重复元素Ⅱ
例112、链表划分
例113、翻转链表Ⅰ
例114、翻转链表Ⅱ
例115、旋转链表
例116、两两交换链表中的节点
例117、删除链表中的元素
例118、重排链表
例119、链表插入排序
例120、合并k个排序链表
例121、带环链表
例122、带环链表转换
例123、删除链表中倒数第n个节点
例124、链表排序
例125、加1链表
例126、交换链表中的两个节点
例127、线段树的修改
例128、线段树的构造Ⅰ
例129、线段树的构造Ⅱ
例130、线段树查询Ⅰ
例131、线段树查询Ⅱ
例132、是否为子树
例133、最小子树
例134、具有最大平均数的子树
例135、二叉搜索树中最接近的值
例136、二叉搜索树中插入节点
例137、二叉搜索树中删除节点
例138、二叉搜索树转化成更大的树
例139、二叉搜索树的搜索区间
例140、二叉搜索树的中序后继
例141、二叉搜索树两数之和
例142、裁剪二叉搜索树
例143、统计完全二叉树节点数
例144、二叉搜索树迭代器
例145、翻转二叉树
例146、相同二叉树
例147、前序遍历树和中序遍历树构造二叉树
例148、二叉树的后序遍历
例149、二叉树的所有路径
例150、中序遍历树和后序遍历树构造二叉树
例151、二叉树的序列化和反序列化
例152、二叉树的层次遍历Ⅰ
例153、二叉树的层次遍历Ⅱ
例154、二叉树的锯齿形层次遍历
例155、寻找二叉树叶子节点
例156、平衡二叉树
例157、二叉树中的最大路径和
例158、验证二叉查找树
例159、二叉树的最大深度
例160、二叉树的前序遍历
例161、二叉树的中序遍历
例162、将排序列表转换成二叉搜索树
例163、二叉树的最小深度
例164、不同的二叉搜索树
例165、将二叉树拆成链表
例166、排序数组转为高度最小二叉搜索树
例167、最近二叉搜索树值Ⅰ
例168、最近二叉搜索树值Ⅱ
例169、买卖股票的最佳时机Ⅰ
例170、买卖股票的最佳时机Ⅱ
例171、买卖股票的最佳时机Ⅲ
例172、主元素Ⅰ
例173、主元素Ⅱ
例174、第k大元素
例175、滑动窗口内唯一元素数量和
例176、单词拆分Ⅰ
例177、单词拆分Ⅱ
例178、单词矩阵
例179、单词搜索
例180、单词接龙Ⅰ
例181、单词接龙Ⅱ
例182、包含所有单词连接的子串
例183、最后一个单词的长度
例184、电话号码的字母组合
例185、会议室Ⅰ
例186、会议室Ⅱ
例187、区间最小数
例188、搜索区间
例189、无重叠区间
例190、区间合并
例191、区间求和Ⅰ
例192、区间求和Ⅱ
例193、是否为子序列
例194、最长上升子序列
例195、有效的括号序列
例196、对称树
例197、图是否为树
例198、表达树的构造
例199、表达式求值
例200、逆波兰表达式求值
例201、将表达式转换为逆波兰表达式
例202、最长公共子序列
例203、乘积最大子序列
例204、最长上升连续子序列
例205、序列重构
例206、不同的子序列
例207、跳跃游戏Ⅰ
例208、跳跃游戏Ⅱ
例209、翻转游戏
例210、棒球游戏
例211、中位数
例212、滑动窗口的中位数
例213、数据流中位数
例214、两个排序数组的中位数
例215、打劫房屋Ⅰ
例216、打劫房屋Ⅱ
例217、子集Ⅰ
例218、子集Ⅱ
例219、迷宫Ⅰ
例220、迷宫Ⅱ
例221、迷宫Ⅲ
例222、迷宫Ⅳ
例223、数字组合Ⅰ
例224、数字组合Ⅱ
例225、数字组合Ⅲ
例226、摆动排序问题
例227、多关键字排序
例228、排颜色
例229、颜色分类
例230、简化路径
例231、不同的路径Ⅰ
例232、不同的路径Ⅱ
例233、换硬币
例234、硬币摆放
例235、硬币排成线Ⅰ
例236、硬币排成线Ⅱ
例237、搜索插入位置
例238、俄罗斯套娃信封
例239、包裹黑色像素点的最小矩形
例240、薪水调整
例241、木材加工
例242、判断数独是否合法
例243、移除多余字符
例244、三元式解析器
例245、符号串生成器
例246、用栈实现队列
例247、用栈模拟汉诺塔问题
例248、带最小值操作的栈
例249、恢复旋转排序数组问题
例250、移动零问题
例251、丢失的间隔问题
例252、三个数的最大乘积
例253、用循环数组来实现队列
例254、寻找数据错误
例255、数据流中第一个独特数
例256、数据流中第一个唯一的数字
例257、二进制中有多少个1、例258、找到映射序列
例259、旋转图像
例260、相反的顺序存储
例261、太平洋和大西洋的水流
例262、不同岛屿的个数
例263、岛的周长问题
例264、数字三角形
例265、最大正方形
例266、最大关联集合
例267、合并k个排序间隔列表
例268、合并账户
例269、集合合并
例270、快乐数判断
例271、最多有多少个点在一条直线上
例272、寻找峰值
例273、电灯切换
例274、第k个质数
例275、最小调整代价
例276、背包问题
例277、爬楼梯
例278、被围绕的区域
例279、编辑距离
例280、最大间距
例281、堆化操作
例282、外轮廓线
例283、格雷编码
例284、能否到达终点
例285、恢复IP地址
例286、斐波纳契数列
例287、最长公共前缀
例288、解码方法
例289、吹气球
例290、生成括号
例291、正则表达式匹配
例292、分割标签
例293、装最多水的容器
例294、接雨水
例295、加油站
例296、分糖果
例297、建立邮局
例298、寻找最便宜的航行旅途
例299、UTF-8编码检查
例300、哈希函数
附录CD