猜你喜欢
图解LeetCode初级算法(Python版)

图解LeetCode初级算法(Python版)

书籍作者:胡松涛 ISBN:9787302539896
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9733
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
生活离不开算法,学习Python也离不开算法。
  《图解LeetCode初级算法(Python版)》主要讲解Python语言下的简单算法,适用于对Python有初步了解的读者,可以让读者对数据结构和语言本身有更好的理解。
  《图解LeetCode初级算法(Python版)》分为11个章节:第1章简单介绍算法以及算法的评判标准;第2~3章用图示详细地说明计算机中常用的算法—排序和查找;第4~11章借用LeetCode的试题演示如何使用算法来解决具体问题。
  《图解LeetCode初级算法(Python版)》内容详尽、示例丰富,是算法(Python版)入门读者的参考书,非常适合大中专院校师生学习阅读,也可作为高等院校计算机及相关专业的教材使用。
前言
本书写作初衷
  1.选择Python来实现算法的原因
  Python作为一门编程语言已经越来越流行。Python的爬虫、Python的大数据、Python的机器学习、Python的Web框架……一眼望去,皆是Python。在最新的编程语言排行榜中,虽然Python上面还有两座大山(C&Java),但其进击势头极猛,榜单位置几乎不可动摇。
  另外,作为一门动态语言,Python使用简单方便,无须编译,即写即用。在解决一些简单问题时优势非常明显。
  2.算法的作用
  “程序=算法+数据结构”这一说法流传已久。对编程有兴趣的不能不去学习算法。在解决实际问题时,有算法的支持和没算法的支持效率可能是天差地别。从最简单的排序,到目前流行的大数据,还有常见的广告精确推广……算法几乎无处不在。
  3.本书涉及的技术
  Python经典算法之搜索
  Python经典算法之排序
  Python算法实用场景
  4.读者学习本书能达到的效果
  Python简单易学,是非常容易入门的一门语言,但从入门到提高有一定的门槛,尤其是算法方面。Leetcode中由浅入深的算法试题可以帮助读者在学习算法开拓思维的同时加深对Python的理解。本书概括了几乎所有Leetcode的初级算法试题,以图例的形式展示算法的原理,供读者学习研究,以提升算法水平、Python编程水平。
目录
第1章 浅谈算法
1.1 算法概述
1.2 度量算法
1.2.1 时间复杂度
1.2.2 空间复杂度
1.3 Python&Pythonic

第2章 基础算法之排序
2.1 冒泡排序
2.1.1 原理
2.1.2 代码
2.2 选择排序
2.2.1 原理
2.2.2 代码
2.3 插入排序
2.3.1 原理
2.3.2 代码
2.4 归并排序
2.4.1 原理
2.4.2 代码
2.5 快速排序
2.5.1 原理
2.5.2 代码
2.6 计数排序
2.6.1 原理
2.6.2 代码
2.7 算法小结

第3章 基础算法之查找
3.1 顺序查找
3.1.1 原理
3.1.2 代码
3.2 二分法查找
3.2.1 原理
3.2.2 代码
3.3 斐波那契查找
3.3.1 原理
3.3.2 代码
3.4 插值查找
3.4.1 原理
3.4.2 代码
3.5 分块查找
3.5.1 原理
3.5.2 代码

第4章 数组
4.1 从排序数组中删除重复项
4.1.1 算法要求
4.1.2 解题思路
4.1.3 解题代码
4.2 买卖股票的最佳时期II
4.2.1 算法要求
4.2.2 解题思路
4.2.3 解题代码
4.3 旋转数组
4.3.1 算法要求
4.3.2 解题思路
4.3.3 解题代码
4.4 存在重复
4.4.1 算法要求
4.4.2 解题思路
4.4.3 解题代码
4.5 只出现一次的数字
4.5.1 算法要求
4.5.2 解题思路
4.5.3 解题代码
4.6 两个数组的交集II
4.6.1 算法要求
4.6.2 解题思路
4.6.3 解题代码
4.7 加一
4.7.1 算法要求
4.7.2 解题思路
4.7.3 解题代码
4.8 移动零
4.8.1 算法要求
4.8.2 解题思路
4.8.3 解题代码
4.9 两数之和
4.9.1 算法要求
4.9.2 解题思路
4.9.3 解题代码
4.10 有效的数独
4.10.1 算法要求
4.10.2 解题思路
4.10.3 解题代码
4.11 旋转图像
4.11.1 算法要求
4.11.2 解题思路
4.11.3 解题代码

第5章 字符串
5.1 反转字符串
5.1.1 算法要求
5.1.2 解题思路
5.1.3 解题代码
5.2 整数反转
5.2.1 算法要求
5.2.2 解题思路
5.2.3 解题代码
5.3 字符串中的第一个唯一字符
5.3.1 算法要求
5.3.2 解题思路
5.3.3 解题代码
5.4 有效的字母异位词
5.4.1 算法要求
5.4.2 解题思路
5.4.3 解题代码
5.5 验证回文字符串
5.5.1 算法要求
5.5.2 解题思路
5.5.3 解题代码
5.6 字符串转整数
5.6.1 算法要求
5.6.2 解题思路
5.6.3 解题代码
5.7 实现strStr()
5.7.1 算法要求
5.7.2 解题思路
5.7.3 解题代码
5.8 报数
5.8.1 算法要求
5.8.2 解题思路
5.8.3 解题代码
5.9 最长公共前缀
5.9.1 算法要求
5.9.2 解题思路
5.9.3 解题代码

第6章 链表
6.1 删除链表中的节点
6.1.1 算法要求
6.1.2 解题思路
6.1.3 解题代码
6.2 删除链表的倒数第n个节点
6.2.1 算法要求
6.2.2 解题思路
6.2.3 解题代码
6.3 反转链表
6.3.1 算法要求
6.3.2 解题思路
6.3.3 解题代码
6.4 合并两个有序链表
6.4.1 算法要求
6.4.2 解题思路
6.4.3 解题代码
6.5 回文链表
6.5.1 算法要求
6.5.2 解题思路
6.5.3 解题代码
6.6 环形链表
6.6.1 算法要求
6.6.2 解题思路
6.6.3 解题代码

第7章 树
7.1 二叉树的最大深度
7.1.1 算法要求
7.1.2 解题思路
7.1.3 解题代码
7.2 验证二叉搜索树
7.2.1 算法要求
7.2.2 解题思路
7.2.3 解题代码
7.3 对称二叉树
7.3.1 算法要求
7.3.2 解题思路
7.3.3 解题代码
7.4 二叉树的层次遍历
7.4.1 算法要求
7.4.2 解题思路
7.4.3 解题代码
7.5 将有序数组转换成二叉搜索树
7.5.1 算法要求
7.5.2 解题思路
7.5.3 解题代码

第8章 排序和搜索&设计问题
8.1 合并两个有序数组
8.1.1 算法要求
8.1.2 解题思路
8.1.3 解题代码
8.2 第一个错误的版本
8.2.1 算法要求
8.2.2 解题思路
8.2.3 解题代码
8.3 数组洗牌(Shuffle an Array)
8.3.1 算法要求
8.3.2 解题思路
8.3.3 解题代码
8.4 最小栈
8.4.1 算法要求
8.4.2 解题思路
8.4.3 解题代码

第9章 动态规划
9.1 爬楼梯
9.1.1 算法要求
9.1.2 解题思路
9.1.3 解题代码
9.2 买卖股票的最佳时机
9.2.1 算法要求
9.2.2 解题思路
9.2.3 解题代码
9.3 最大子序和
9.3.1 算法要求
9.3.2 解题思路
9.3.3 解题代码
9.4 寻找宝物
9.4.1 算法要求
9.4.2 解题思路
9.4.3 解题代码

第10章 数学
10.1 FizzBuzz
10.1.1 算法要求
10.1.2 解题思路
10.1.3 解题代码
10.2 计算质数
10.2.1 算法要求
10.2.2 解题思路
10.2.3 解题代码
10.3 3的幂
10.3.1 算法要求
10.3.2 解题思路
10.3.3 解题代码
10.4 罗马数字转整数
10.4.1 算法要求
10.4.2 解题思路
10.4.3 解题代码

第11章 其他
11.1 位1的个数
11.1.1 算法要求
11.1.2 解题思路
11.1.3 解题代码
11.2 汉明距离
11.2.1 算法要求
11.2.2 解题思路
11.2.3 解题代码
11.3 颠倒二进制位
11.3.1 算法要求
11.3.2 解题思路
11.3.3 解题代码
11.4 帕斯卡三角形
11.4.1 算法要求
11.4.2 解题思路
11.4.3 解题代码
11.5 有效的括号
11.5.1 算法要求
11.5.2 解题思路
11.5.3 解题代码
11.6 缺失数字
11.6.1 算法要求
11.6.2 解题思路
11.6.3 解题代码