2019从算法到数据结构教程视频 数据结构不难 算法很美

作者: admin 分类: 机器学习和人工智能教程合集 发布时间: 2019-11-04 03:08

第一章 位运算的奇巧淫技
试听课
• 1.1 课程介绍试听课
• 1.2 题解:如何找数组中唯一成对的那个数试听课
• 1.3 找出落单的数,这样编程就对了试听课
• 1.4 一题三解:计算二进制中1的个数试听课
• 1.5 一条语句判断整数是不是2的整数次方试听课
• 1.6 位运算思维:将整数的奇偶位互换试听课
• 1.7 乘2挪整:二进制表示浮点实数试听课
• 1.8 编程实践:出现k次与出现1次(上)试听课
• 1.9 编程实践:出现k次与出现1次(下)试听课
第二章 查找与排序(上)

• 2.1 什么是递归
• 2.2 切蛋糕思维:递归知识练习题
• 2.3 多分支递归:裴波那契序列
• 2.4 巧用递推公式解最大公约数
• 2.5 别有洞天:递归形式进行插入排序
• 2.6 递归经典问题:汉诺塔游戏
• 2.7 二分查找的递归解法
• 2.8 思维更重要:希尔排序
• 2.9 利用“大O表示法”评估算法复杂度
• 2.10 常见函数的复杂度计算
• 2.11 性能对比:顺序查找与二分查找
• 2.12 大O法应用:基础排序算法的性能对比
• 2.13 难点突破:三种典型递归形式算法的性能分
• 2.14 希尔排序的性能玄机
• 2.15 分析10种排序算法的稳定性
• 2.16 解题实战:小白上楼梯(递归设计)
• 2.17 解题实战:旋转数组的最小数字(改造二分法)
• 2.18 题目详解:在有空字符串中的有序字符串数组中查找
• 2.19 题目详解:找出最长连续递增子序列
• 2.20 实战:快速设计一个高效的求a的n次幂的算法
第三章 查找与排序(下)

• 3.1 分治法介绍及关键点解析
• 3.2 你需要掌握的快速排序算法
• 3.3 快排之单向扫描分区法
• 3.4 快排之双向扫描分区法
• 3.5 快排之三指针分区法
• 3.6 快排在工程实践中的优化
• 3.7 分治模式的完美诠释:归并排序
• 3.8 题解:调整数组顺序—奇数在左偶数在右
• 3.9 最快效率求出乱序数组中第k小的数
• 3.10 实战解题:哪个数字超过了一半?
• 3.11 趣味拓展:寻找发帖水王
• 3.12 实践:最小可用id是多少(上)
• 3.13 实践:最小可用id是多少(下)
• 3.14 讲2道关于逆序对的题目
• 3.15 基础学习:树、二叉树、堆排序
• 3.16 堆的概念及堆排序思路
• 3.17 将数组堆化的伪代码
• 3.18 堆排序的进一步完善
• 3.19 计数排序的学习
• 3.20 桶排序
• 3.21 基数排序
• 3.22 总结:10种排序算法的对比分析
• 3.23 相关题解:排序数组中找和的因子
• 3.24 计算需排序的子数组长度
• 3.25 知其然知其所以然:小顶堆与topK思路分析
• 3.26 实战:小顶堆与topK的具体代码实现
• 3.27 用计数排序解决员工年龄问题
• 3.28 天外有天:特殊排序
• 3.29 题解:判断数组的包含问题
第四章 多维数组和矩阵

• 4.1 基础题:顺时针打印二维数组
• 4.2 基础题:将0所在的行列清零
• 4.3 基础题:Z形打印二位数组
• 4.4 找出边界为1的最大子方阵
• 4.5 边界为1的最大子方阵优化(上)
• 4.6 边界为1的最大子方阵优化(下)
• 4.7 解题:编程返回子数组最大累加和
• 4.8 解题:求子矩阵最大累加和
• 4.9 矩阵运算
第五章 字符串专题

• 5.1 题解:判断字符串有无重复字符
• 5.2 题解:巧妙翻转字符串
• 5.3 走出思维误区:变形词问题
• 5.4 实践:替换字符串中的空格
• 5.5 题解:压缩字符串
• 5.6 题解:判断两字符串的字符集是否相同
• 5.7 题解:旋转词
• 5.8 题解:将字符串按单词翻转
• 5.9 题解:去掉字符串中连续出现的k次的0
• 5.10 题解:神奇的回文串
• 5.11 题解:最短摘要的生成
• 5.12 字符串匹配之PabinKarp(上)
• 5.13 字符串匹配之RabinKarp(下)
• 5.14 字符串匹配之KMP(上)
• 5.15 字符串匹配之KMP(下)
• 5.16 字符串匹配之后缀数组(上)
• 5.17 字符串匹配之后缀数组(中)
• 5.18 字符串匹配之后缀数组(下)
• 5.19 字符串应用:尺取法例题
• 5.20 字符串应用:next数组例题
• 5.21 后缀数组的应用(上)
• 5.22 后缀数组的应用(下)
第六章 数学问题

• 6.1 巧用进制解决天平称重问题
• 6.2 经典数学问题:Nim游戏
• 6.3 阶梯Nim博弈问题
• 6.4 必备的求和公式,牢记!
• 6.5 欧几里得算法
• 6.6 欧几里得算法的扩展-裴蜀公式
• 6.7 欧几里得算法解一步之遥
• 6.8 求解同余方程的正确姿势
• 6.9 一维世界的爱情:青蛙的约会
• 6.10 特殊的同余方程—逆元
• 6.11 很有意思的同余方程组
• 6.12 素数的测试及质因数分解
• 6.13 素数的筛法
• 6.14 快速幂运算
第七章 递归、DFS、剪枝、回溯等问题

• 7.1 本章预习材料
• 7.2 双管齐下解决递归问题
• 7.3 题解:机器人走方格问题
• 7.4 名企面试题:硬币表示某个给定数值
• 7.5 “逐步生成结果”之非数值型问题
• 7.6 题解:子集生成
• 7.7 子集生成之二进制法
• 7.8 全排列 (上)
• 7.9 全排列(中)
• 7.10 全排列(下)
• 7.11 闭式解举例
• 7.12 dfs例题:数独游戏
• 7.13 dfs竞赛例题:部分和
• 7.14 dfs竞赛例题解析:水洼数
• 7.15 回溯和剪枝:n皇后问题
• 7.16 dfs竞赛题解析:素数环
• 7.17 dfs竞赛题解析:困难的串
• 7.18 本章小结
第八章 贪心策略与动态规划

• 8.1 本章预习材料
• 8.2 贪心策略简介及硬币支付问题
• 8.3 贪心策略例题:快速渡河问题
• 8.4 贪心策略例题:区间调度问题
• 8.5 贪心策略例题:区间选点问题
• 8.6 贪心策略例题:区间覆盖问题
• 8.7 贪心策略例题:字典序最小问题
• 8.8 几个背包相关的问题
• 8.9 涨姿势:乘船问题
• 8.10 总结:以上贪心策略例题的思路总结
• 8.11 动态规划简介及背包问题
• 8.12 动态规划例题:背包之dp解法
• 8.13 贪心策略问题:钢条切割
• 8.14 动态规划例题:数字三角形
• 8.15 动态规划例题:LCS(最长公共子序列)
• 8.16 动态规划例题:完全背包问题
• 8.17 著名问题:最长递增子序列(上)
• 8.18 著名问题:最长递增子序列(下)
• 8.19 本章小结

第九章 线性结构:列表、链表、栈、队列
9.1 面向对象概述试听课
9.2 数据结构概述试听课
9.3 基于数组实现线性表试听课
9.4 单链表1试听课
9.5 单链表2试听课
9.6 双链表
9.7 迭代器and泛型
9.8 Java-List-API
9.9 桶排序
9.10 链表例1:删除重复节点
9.11 链表例2:倒数第k个节点
9.12 链表例3:删除单向链表中的某节点
9.13 例4:用基准值将链表分区
9.14 链表例5:链表加法
9.15 链表例6:有环链表的环起点
9.16 链表例6:有环链表的环起点-解法2
9.17 链表例7:判断回文链表
9.18 栈的实现
9.19 队列的实现
9.20 栈队例1和例2:设计带最小值的栈
9.21 栈队例3:SetOfStacks
9.22 栈队例4:两个栈实现队列
9.23 栈队例5:栈的排序
9.24 栈队例6:猫狗收容所
第十章 哈希表、哈希映射
10.1 hash及HashMap简介
10.2 实现HashMap(上)
10.3 实现HashMap(下)
10.4 实现HashSet
10.5布隆过滤(上)
10.6 布隆过滤器(下)
10.7 一致性hash(1)
10.8 一致性hash(2)
10.9 一致性hash(3)
10.10 题1:大文件中找出现次数最多的key
10.11 题2:某海量范围内没有出现的数字
10.12 题3:海量数据找重复
第十一章 树结构
11.1 树的基本概念
11.2 树的实现
11.3 树层次遍历和换行
11.4二叉树及其性质
11.5BST的定义及接口
11.6BST操作之新增节点
11.7BST的中序遍历
11.8BST中的查找
11.9BST的最小和最大
11.10BST中移除节点
11.11BST中的前驱和后继
11.12BST的层次遍历
11.13二叉平衡树及其思路
11.14AVL之插入节点与重平衡
11.15AVL删除节点及重平衡
11.16红黑树简介
11.17红黑树插入节点及调整(1)
11.18红黑树插入节点及调整(2)
11.19红黑树插入节点及调整(3)
11.20红黑树的节点删除和修复架构
11.21红黑树删除节点及调整(1)
11.22 红黑树删除节点及调整(2)
11.23 红黑树删除节点及调整(3)
11.24 二叉树补充
11.25 Trie简介
11.26 tree题解1-最小深度
11.27 tree题解2-路径数字串之和
11.28 tree题解3-判断二叉树是否平衡
11.29 tree题解4-用有序数组构建高度最低的BST
11.30 tree题解5-BST某一层的所有节点
11.31tree题解6-判断二叉树是否BST
11.32 tree题解7-带parent指针的successor求解
11.33BST中序遍历的递归解法(1)
11.34BST中序遍历的递归解法(2)
11.35tree题解7-不带parent指针的successor求解
11.36tree题解8-最近公共祖先(1)
11.37tree题解8-最近公共祖先(2)
11.38tree题解8-最近公共祖先(3)
11.39tree题解9-子树判断
11.40tree题解10-输出和为指定值的路径
第十二章 图论
12.1图基础概念和术语
12.2图的表示
12.3四连通检测
12.4八连通块
12.5dfs-3 拓扑排序
12.6dfs-4 七桥问题与欧拉道路(1)
12.7dfs-4 七桥问题与欧拉道路(2)
12.8 dfs-5 二分图
12.9 最小生成树之Kruskal算法介绍
12.10最小生成树之Kruskal算法实现
12.11最短路问题之Bellman-ford算法
12.12 最短路问题之Dijkstra算法
12.13题解1:POJ1287-最小生成树
12.14题解2:城市道路建设-最小生成树
12.15题解3:状态图示例-分酒问题
12.16题解4:走出迷宫的最少步数
12.17题解5:POJ1502-最短路问题

更多阅读