算法名师Liuyubobobo,5年集大成之作 满足你从开始学编程到工作5年内的几乎所有算法学习需求 从0到工作5年,面试、进大厂、搭建知识体系、拓展技术上限 满足你对算法的大部分所需
* 00 资料/
* 项目git/
* 01 Play-Algorithms-and-Data-Structures.zip (53.51 MB)
* 01 阶段一:算法与数据结构基础/
* 01 线性查找法/
* 01 第1章 欢迎大家来到算法与数据结构的世界/
* 01 1-1 欢迎大家来到算法与数据结构的世界 最近学习.mp4 (131.12 MB), 23:27
* 02 1-2 学习算法和数据结构到底有没有用 (2243).mp4 (138.58 MB), 22:43
* 03 1-3 更多课程学习注意事项 (1400).mp4 (83.03 MB), 14:00
* 04 1-4 课程编程环境的搭建 (1411).mp4 (75.08 MB), 14:11
* 02 第2章 线性查找法/
* 01 2-1 什么是算法 (1444).mp4 (80.56 MB), 14:44
* 02 2-2 最简单的算法:线性查找法 (0513).mp4 (26.85 MB), 05:14
* 03 2-3 实现线性查找法 (1449).mp4 (94.69 MB), 14:49
* 04 2-4 使用泛型 (1427).mp4 (74.90 MB), 14:27
* 05 2-5 使用自定义类测试我们的算法 (1249).mp4 (73.29 MB), 12:49
* 06 2-6 循环不变量 (1351).mp4 (80.90 MB), 13:51
* 07 2-7 简单的复杂度分析 (2003).mp4 (111.99 MB), 20:03
* 08 2-8 常见的时间复杂度 (2712).mp4 (150.94 MB), 27:12
* 09 2-9 测试算法性能 (1344).mp4 (79.50 MB), 13:44
* 10 2-10 本章小结 (0250).mp4 (12.33 MB), 02:50
* 02 排序基础/
* 01 第1章 选择排序法/
* 01 1-1 最简单的排序算法:选择排序法 (1500).mp4 (78.66 MB), 15:03
* 02 1-2 实现选择排序法 (0947).mp4 (60.11 MB), 09:47
* 03 1-3 使用带约束的泛型 (0658).mp4 (39.12 MB), 06:58
* 04 1-4 使用 Comparable 接口 (1232).mp4 (70.80 MB), 12:32
* 05 1-5 选择排序法的复杂度分析 (2641).mp4 (180.46 MB), 26:41
* 06 1-6 一个作业:换个角度实现选择排序法 (0220).mp4 (12.49 MB), 02:20
* 07 1-7 换个角度实现选择排序法,作业分析.html (0.00 MB)
* 02 第2章 插入排序法/
* 01 2-1 插入排序法 (1329).mp4 (62.71 MB), 13:29
* 02 2-2 实现插入排序法 (1300).mp4 (76.05 MB), 13:00
* 03 2-3 插入排序法的一个小优化 (1522).mp4 (136.66 MB), 15:22
* 04 2-4 插入排序法的特性 (1656).mp4 (146.53 MB), 16:56
* 05 2-5 一个作业:换个角度实现插入排序法 (0224).mp4 (12.19 MB), 02:24
* 06 2-6 换个角度实现插入排序法,作业分析 最近学习.html (0.47 MB)
* 07 2-7 本章小结 (0513).mp4 (19.83 MB), 05:13
* 03 数据结构基础:动态数组,栈和队列/
* 01 第1章 数据结构基础:不要小瞧数组/
* 01 1-1 为什么要学习数据结构 (1000).mp4 (60.80 MB), 10:03
* 02 1-2 使用 Java 中的数组 (0925).mp4 (78.64 MB), 09:25
* 03 1-3 二次封装属于我们自己的数组 (1543).mp4 (116.80 MB), 15:43
* 04 1-4 向数组中添加元素 (1230).mp4 (85.41 MB), 12:30
* 05 1-5 数组中查询元素和修改元素 (0954).mp4 (56.03 MB), 09:54
* 06 1-6 数组中的包含,搜索和删除 (1547).mp4 (89.48 MB), 15:47
* 07 1-7 泛型类 (1712).mp4 (126.51 MB), 17:12
* 08 1-8 动态数组 (1442).mp4 (139.51 MB), 14:42
* 09 1-9 简单的复杂度分析 (0905).mp4 (53.09 MB), 09:05
* 10 1-10 均摊复杂度和防止复杂度的震荡 (1450).mp4 (109.39 MB), 14:50
* 02 第2章 栈和队列/
* 01 2-1 栈和栈的应用:撤销操作和系统栈 (1158).mp4 (55.60 MB), 11:58
* 02 2-2 栈的基本实现 (1601).mp4 (122.02 MB), 16:02
* 03 2-3 栈的另一个应用:括号匹配 (1554).mp4 (93.35 MB), 15:54
* 04 2-4 关于 Leetcode 的更多说明 (1721).mp4 (94.65 MB), 17:21
* 05 2-5 数组队列 (1449).mp4 (125.58 MB), 14:49
* 06 2-6 循环队列 (1515).mp4 (121.69 MB), 15:15
* 07 2-7 循环队列的实现 (1721).mp4 (95.84 MB), 17:21
* 08 2-8 数组队列和循环队列的比较 (1231).mp4 (77.61 MB), 12:31
* 09 2-9 作业:换个方式实现队列 (0204).mp4 (7.54 MB), 02:04
* 10 2-10 作业解析:不浪费一个空间的循环队列.html (0.00 MB)
* 11 2-11 作业解析:没有 size 成员变量的循环队列.html (0.01 MB)
* 12 2-12 作业:双端队列 (0317).mp4 (13.79 MB), 03:17
* 13 2-13 作业解析:实现双端队列.html (0.01 MB)
* 14 2-14 Java 程序员,别用 Stack!.html (0.02 MB)
* 03 第3章 习题补充:栈和队列其他习题/
* 01 3-1 作业:用栈实现队列和用队列实现栈 (0812).mp4 (78.85 MB), 08:12
* 02 3-2 作业解析:用队列实现栈.html (0.02 MB)
* 03 3-3 作业解析:用栈实现队列.html (0.01 MB)
* 04 3-4 更多栈和队列的问题推荐 最近学习.html (0.00 MB)
* 04 动态数据结构基础:链表/
* 01 第1章 最基础的动态数据结构:链表/
* 01 1-1 什么是链表 (1336).mp4 (89.68 MB), 13:39
* 02 1-2 在链表中添加元素 (1758).mp4 (109.92 MB), 17:58
* 03 1-3 使用链表的虚拟头结点 (0712).mp4 (68.80 MB), 07:12
* 04 1-4 链表的遍历,查询和修改 (1055).mp4 (60.05 MB), 10:55
* 05 1-5 从链表中删除元素 (1519).mp4 (103.69 MB), 15:19
* 06 1-6 使用链表实现栈 (1144).mp4 (76.52 MB), 11:44
* 07 1-7 带有尾指针的链表:使用链表实现队列 (1849).mp4 (170.02 MB), 18:49
* 08 1-8 链表的性能问题.html (0.00 MB)
* 02 第2章 透过链表看递归/
* 01 2-1 Leetcode中和链表相关的问题 (1550).mp4 (123.63 MB), 15:50
* 02 2-2 测试自己的Leetcode链表代码 (0838).mp4 (47.29 MB), 08:38
* 03 2-3 递归基础与递归的宏观语意 (1623).mp4 (88.10 MB), 16:23
* 04 2-4 链表与递归 (1302).mp4 (121.59 MB), 13:02
* 05 2-5 递归运行的机制:递归的微观解读 (2132).mp4 (126.02 MB), 21:32
* 06 2-6 递归算法的调试 (1447).mp4 (81.48 MB), 14:47
* 07 2-7 作业:链表的递归实现 (0144).mp4 (9.80 MB), 01:44
* 08 2-8 作业解析:链表的递归实现.html (0.01 MB)
* 09 2-9 链表添加元素递归方法的常见问题解析 (1728).mp4 (96.94 MB), 17:28
* 10 2-10 更多和链表相关的话题 (0812).mp4 (27.50 MB), 08:12
* 11 2-11 斯坦福大学推荐的 18 个链表相关问题 最近学习.html (0.01 MB)
* 03 第3章 补充 链表相关习题/
* 01 3-1 链表最经典的问题:翻转链表 (0905).mp4 (55.60 MB), 09:05
* 02 3-2 翻转链表的非递归实现 (0845).mp4 (48.99 MB), 08:45
* 03 3-3 翻转链表的递归实现 (1114).mp4 (64.39 MB), 11:14
* 04 3-4 更多链表问题推荐 (0433).mp4 (24.83 MB), 04:33
* 02 阶段二:递归无处不在/
* 01 归并排序法/
* 01 第1章 归并排序法/
* 01 1-1 归并排序法的原理 (1143).mp4 (77.54 MB), 11:46
* 02 1-2 归并过程 (1209).mp4 (58.64 MB), 12:09
* 03 1-3 实现归并过程 (1142).mp4 (78.84 MB), 11:42
* 04 1-4 实现归并排序法 (1156).mp4 (67.10 MB), 11:56
* 05 1-5 归并排序法的微观解读 (1825).mp4 (110.52 MB), 18:25
* 06 1-6 作业:在程序上调试跟踪归并排序法 (0302).mp4 (24.74 MB), 03:02
* 07 1-7 在程序上调试跟踪归并排序法.html (0.01 MB)
* 08 1-8 归并排序法的复杂度分析 (2128).mp4 (113.18 MB), 21:28
* 02 第2章 更多关于归并排序法/
* 01 2-1 在有序数组,让归并排序法成为 O(n) 算法 (1424).mp4 (66.09 MB), 14:24
* 02 2-2 使用插入排序法优化归并排序法 (1235).mp4 (69.92 MB), 12:35
* 03 2-3 归并排序法的内存操作优化 (1253).mp4 (71.48 MB), 12:53
* 04 2-4 自底向上的归并排序 (1147).mp4 (60.57 MB), 11:47
* 05 2-5 实现自底向上的归并排序 (1642).mp4 (92.77 MB), 16:42
* 06 2-6 作业:使用插入排序法优化自底向上的归并排序 (0115).mp4 (5.33 MB), 01:15
* 07 2-7 使用插入排序法,优化自底向上的归并排序 最近学习.html (0.01 MB)
* 08 2-8 数组的逆序对数量问题 (0808).mp4 (63.54 MB), 08:08
* 09 2-9 快速求解数组的逆序对数量 (1942).mp4 (171.73 MB), 19:42
* 10 2-10 归并排序法小结 (0814).mp4 (32.62 MB), 08:14
* 02 快速排序法/
* 01 第1章 快速排序法/
* 01 1-1 快速排序法的原理 (1233).mp4 (71.14 MB), 12:36
* 02 1-2 Partition (1731).mp4 (67.34 MB), 17:31
* 03 1-3 第一版快速排序法 (1431).mp4 (85.15 MB), 14:31
* 04 1-4 作业:深入理解快速排序的递归过程 (0355).mp4 (21.39 MB), 03:55
* 05 1-5 作业解析:使用插入排序法优化快速排序.html (0.47 MB)
* 06 1-6 第一版快速排序法的问题 (1412).mp4 (56.58 MB), 14:12
* 07 1-7 为快速排序添加随机化 (1549).mp4 (92.26 MB), 15:49
* 08 1-8 两个作业:深入玩转快速排序 (0354).mp4 (23.06 MB), 03:54
* 09 1-9 作业解析:只创建一个 Random 类.html (0.00 MB)
* 10 1-10 作业解析:用算法生成一个特殊的测试用例.html (0.01 MB)
* 02 第2章 更多关于快速排序法/
* 01 2-1 快速排序算法还有问题 (1144).mp4 (45.16 MB), 11:44
* 02 2-2 双路快速排序法 (1442).mp4 (64.14 MB), 14:42
* 03 2-3 实现双路快速排序法 (1233).mp4 (71.01 MB), 12:33
* 04 2-4 快速排序算法的复杂度分析 (1601).mp4 (90.92 MB), 16:01
* 05 2-5 三路快速排序法 (1251).mp4 (67.53 MB), 12:51
* 06 2-6 实现三路快速排序法 (1542).mp4 (88.15 MB), 15:42
* 07 2-7 作业:一道面试问题,Sort Colors (0242).mp4 (17.60 MB), 02:42
* 08 2-8 Leetcode 75 Sort Colors.html (0.00 MB)
* 09 2-9 作业:Select K 问题 (1506).mp4 (88.06 MB), 15:06
* 10 2-10 和 Select K 相关的三个问题 最近学习.html (0.48 MB)
* 11 2-11 快速排序小结 (0739).mp4 (39.51 MB), 07:39
* 03 二分查找法/
* 01 第1章 二分查找法/
* 01 1-1 二分查找法 (1651).mp4 (95.18 MB), 16:54
* 02 1-2 二分查找法的递归写法 (1107).mp4 (67.95 MB), 11:07
* 03 1-3 二分查找法的非递归写法 (1222).mp4 (67.45 MB), 12:22
* 04 1-4 作业:Select K 的非递归写法 (0234).mp4 (15.95 MB), 02:34
* 05 1-5 非递归实现 Select K 算法.html (0.01 MB)
* 06 1-6 换个定义实现二分查找法 (1016).mp4 (71.10 MB), 10:16
* 07 1-7 作业:换个定义实现算法 (0530).mp4 (36.58 MB), 05:30
* 08 1-8 改变定义重写 Select K 算法.html (0.01 MB)
* 09 1-9 改变定义重写归并排序算法.html (0.01 MB)
* 02 第2章 二分查找法的变种/
* 01 2-1 二分查找法的变种:upper (1448).mp4 (86.14 MB), 14:48
* 02 2-2 实现 upper (1315).mp4 (75.36 MB), 13:15
* 03 2-3 二分查找法的变种:ceil (1016).mp4 (89.43 MB), 10:16
* 04 2-4 作业:二分查找法的变种:lower_ceil (0318).mp4 (19.40 MB), 03:18
* 05 2-5 作业解析:实现 lower_ceil.html (0.01 MB)
* 06 2-6 二分查找法的变种:lower (0854).mp4 (51.81 MB), 08:54
* 07 2-7 实现 lower 和二分查找的大坑 (2344).mp4 (133.16 MB), 23:44
* 08 2-8 作业:二分查找法的变种:lower_floor 和 upper_floor (0538).mp4 (30.59 MB), 05:38
* 09 2-9 作业解析:实现 lower_floor 和 upper_floor.html (0.01 MB)
* 10 2-10 二分查找法总结:二分查找模板 (0957).mp4 (54.71 MB), 09:57
* 11 2-11 作业解析:换个方式实现二分查找.html (0.00 MB)
* 03 第3章 补充:二分查找相关习题/
* 01 3-1 Leetcode 875 (1021).mp4 (58.78 MB), 10:21
* 02 3-2 编程实现 Leetcode 875 (0934).mp4 (55.68 MB), 09:34
* 03 3-3 作业:Leetcode 1011 (0813).mp4 (44.77 MB), 08:13
* 04 3-4 解决 Leetcode 1011 最近学习.html (0.01 MB)
* 05 3-5 更多二分查找相关问题 (0259).mp4 (15.17 MB), 02:59
* 04 二分搜索树/
* 01 第1章 二分搜索树/
* 01 1-1 为什么要研究树结构 (0918).mp4 (52.30 MB), 09:21
* 02 1-2 二分搜索树基础 (1841).mp4 (111.12 MB), 18:41
* 03 1-3 向二分搜索树中添加元素 (1523).mp4 (111.10 MB), 15:23
* 04 1-4 改进添加操作:深入理解递归终止条件 (1006).mp4 (56.11 MB), 10:06
* 05 1-5 作业:和二分搜索树的添加相关的两个问题 (0329).mp4 (20.14 MB), 03:29
* 06 1-6 作业解析:和二分搜索树的添加相关的两个问题 最近学习.html (0.01 MB)
* 07 1-7 二分搜索树的查询操作 (0524).mp4 (30.49 MB), 05:24
* 08 1-8 二分搜索树的前序遍历 (1807).mp4 (109.51 MB), 18:07
* 09 1-9 二分搜索树的中序遍历和后序遍历 (1002).mp4 (53.66 MB), 10:02
* 10 1-10 深入理解二分搜索树的前中后序遍历 (1136).mp4 (68.45 MB), 11:36
* 11 1-11 二分搜索树前序遍历的非递归实现 (1537).mp4 (104.51 MB), 15:37
* 12 1-12 二分搜索树的层序遍历 (1338).mp4 (83.76 MB), 13:38
* 13 1-13 删除二分搜索树的最大元素和最小元素 (2222).mp4 (160.06 MB), 22:22
* 14 1-14 删除二分搜索树的任意元素 (1714).mp4 (130.78 MB), 17:14
* 15 1-15 更多二分搜索树相关话题 (0927).mp4 (59.79 MB), 09:27
* 02 第2章 集合和映射/
* 01 2-1 集合基础和基于二分搜索树的集合实现 (1916).mp4 (176.80 MB), 19:16
* 02 2-2 基于链表的集合实现 (0816).mp4 (65.86 MB), 08:16
* 03 2-3 集合类的复杂度分析 (1953).mp4 (90.64 MB), 19:53
* 04 2-4 Leetcode中的集合问题和更多集合相关问题 (1250).mp4 (62.09 MB), 12:50
* 05 2-5 映射基础 (1211).mp4 (70.16 MB), 12:11
* 06 2-6 基于链表的映射实现 (1900).mp4 (108.36 MB), 19:00
* 07 2-7 基于二分搜索树的映射实现 (1504).mp4 (85.25 MB), 15:04
* 08 2-8 映射的复杂度分析和更多映射相关问题 (1153).mp4 (57.61 MB), 11:53
* 09 2-9 Leetcode上更多集合和映射的问题 (1707).mp4 (93.82 MB), 17:07
* 03 阶段三:算法与数据结构进阶/
* 01 堆,优先队列和堆排序/
* 01 第1章 最大堆,最小堆/
* 01 1-1 什么是优先队列 (1507).mp4 (81.06 MB), 15:10
* 02 1-2 堆的基础表示 (1841).mp4 (134.22 MB), 18:41
* 03 1-3 向堆中添加元素和Sift Up (1019).mp4 (80.04 MB), 10:19
* 04 1-4 从堆中取出元素和Sift Down (1653).mp4 (103.32 MB), 16:53
* 05 1-5 最直观的堆排序 (0935).mp4 (69.25 MB), 09:35
* 06 1-6 Heapify 和 Replace (2407).mp4 (131.05 MB), 24:07
* 07 1-7 实现 Heapify (1044).mp4 (66.26 MB), 10:44
* 08 1-8 优化的堆排序 (2154).mp4 (193.44 MB), 21:54
* 09 1-9 作业:最小堆 (0131).mp4 (3.99 MB), 01:31
* 10 1-10 实现最小堆.html (0.01 MB)
* 02 第2章 优先队列/
* 01 2-1 基于堆的优先队列 (0631).mp4 (44.99 MB), 06:31
* 02 2-2 Top K 问题 (1323).mp4 (102.22 MB), 13:23
* 03 2-3 作业:使用优先队列解决 Select K 问题 (0234).mp4 (16.04 MB), 02:34
* 04 2-4 使用优先队列的思想解决 Leetcode 215 最近学习.html (0.47 MB)
* 05 2-5 使用 Java 中的 PriorityQueue (1550).mp4 (89.69 MB), 15:50
* 06 2-6 使用快排思想和优先队列解决 Top K 问题的比较 (0947).mp4 (65.44 MB), 09:47
* 07 2-7 和堆相关的更多话题和广义队列 (1051).mp4 (92.47 MB), 10:51
* 02 冒泡排序,希尔排序和排序算法大总结/
* 01 第1章 冒泡排序法/
* 01 1-1 冒泡排序的基本思想 (1459).mp4 (63.92 MB), 15:02
* 02 1-2 实现冒泡排序法 (0818).mp4 (54.59 MB), 08:18
* 03 1-3 冒泡排序的优化 (1222).mp4 (110.09 MB), 12:22
* 04 1-4 冒泡排序还能优化 (1431).mp4 (134.04 MB), 14:31
* 05 1-5 作业:换个方式实现冒泡排序 (0408).mp4 (16.76 MB), 04:08
* 06 1-6 换个方式实现冒泡排序 最近学习.html (0.01 MB)
* 07 1-7 冒泡排序的特点 (0454).mp4 (13.32 MB), 04:54
* 02 第2章 希尔排序法/
* 01 2-1 插入排序法和冒泡排序法的启迪 (0939).mp4 (35.09 MB), 09:39
* 02 2-2 希尔排序法的基本原理 (1507).mp4 (80.65 MB), 15:08
* 03 2-3 实现希尔排序法 (1329).mp4 (96.55 MB), 13:29
* 04 2-4 希尔排序法的性能 (1716).mp4 (75.44 MB), 17:16
* 05 2-5 换个方式实现希尔排序法 (1155).mp4 (70.63 MB), 11:55
* 06 2-6 步长序列 (1139).mp4 (99.65 MB), 11:39
* 07 2-7 希尔排序和超参数 (0834).mp4 (90.31 MB), 08:34
* 03 第3章 基于比较排序算法大总结/
* 01 3-1 基于比较排序算法大总结 (1731).mp4 (108.23 MB), 17:31
* 02 3-2 什么是排序算法的稳定性 (0938).mp4 (61.25 MB), 09:38
* 03 3-3 基础排序算法的稳定性 (1742).mp4 (103.16 MB), 17:42
* 04 3-4 高级排序算法的稳定性 (1811).mp4 (110.78 MB), 18:11
* 03 线段树,Trie 和并查集/
* 01 第1章 线段树/
* 01 1-1 什么是线段树 (1410).mp4 (83.25 MB), 14:14
* 02 1-2 线段树基础表示 (1738).mp4 (110.65 MB), 17:38
* 03 1-3 创建线段树 (1757).mp4 (100.67 MB), 17:57
* 04 1-4 线段树中的区间查询 (1615).mp4 (114.81 MB), 16:15
* 05 1-5 Leetcode上线段树相关的问题 (1701).mp4 (96.30 MB), 17:01
* 06 1-6 线段树中的更新操作 (1228).mp4 (59.98 MB), 12:28
* 07 1-7 更多线段树相关的话题 (1641).mp4 (80.55 MB), 16:41
* 02 第2章 Trie~/
* 01 2-1 什么是Trie字典树 (1327).mp4 (77.76 MB), 13:27
* 02 2-2 Trie字典树基础 (1355).mp4 (84.28 MB), 13:55
* 03 2-3 Trie字典树的查询 (1248).mp4 (73.11 MB), 12:48
* 04 2-4 Trie字典树的前缀查询 (0712).mp4 (58.93 MB), 07:12
* 05 2-5 Trie字典树和简单的模式匹配 (1219).mp4 (70.30 MB), 12:19
* 06 2-6 Trie字典树和字符串映射 (1602).mp4 (85.26 MB), 16:02
* 07 2-7 更多和Trie字典树相关的话题 (1601).mp4 (72.89 MB), 16:01
* 08 2-8 基于哈希表或者数组的 Trie 最近学习.html (0.01 MB)
* 03 第3章 并查集/
* 01 3-1 什么是并查集 (1323).mp4 (80.06 MB), 13:23
* 02 3-2 Quick Find (1421).mp4 (99.49 MB), 14:21
* 03 3-3 Quick Union (1436).mp4 (117.44 MB), 14:36
* 04 3-4 基于size的优化 (1911).mp4 (107.93 MB), 19:11
* 05 3-5 基于rank的优化 (1050).mp4 (96.94 MB), 10:50
* 06 3-6 路径压缩 (1148).mp4 (110.08 MB), 11:48
* 07 3-7 更多和并查集相关的话题 (1402).mp4 (70.25 MB), 14:02
* 04 AVL 树和红黑树/
* 01 第1章 平衡树和AVL/
* 01 1-1 平衡树和AVL (1425).mp4 (88.87 MB), 14:28
* 02 1-2 计算节点的高度和平衡因子 (1156).mp4 (66.14 MB), 11:56
* 03 1-3 检查二分搜索树性质和平衡性 (0952).mp4 (54.65 MB), 09:52
* 04 1-4 旋转操作的基本原理 (1959).mp4 (108.28 MB), 20:00
* 05 1-5 左旋转和右旋转的实现 (1328).mp4 (77.24 MB), 13:28
* 06 1-6 LR 和 RL (1848).mp4 (144.32 MB), 18:48
* 07 1-7 从AVL树中删除元素 (1859).mp4 (121.01 MB), 18:59
* 08 1-8 基于AVL树的集合和映射 (1515).mp4 (101.31 MB), 15:15
* 02 第2章 红黑树/
* 01 2-1 红黑树与2-3树 (1309).mp4 (68.61 MB), 13:09
* 02 2-2 2-3树的绝对平衡性 (1903).mp4 (98.28 MB), 19:03
* 03 2-3 红黑树与2-3树的等价性 (1940).mp4 (186.16 MB), 19:41
* 04 2-4 红黑树的基本性质和复杂度分析 (1913).mp4 (112.31 MB), 19:13
* 05 2-5 保持根节点为黑色和左旋转 (1917).mp4 (146.87 MB), 19:17
* 06 2-6 颜色翻转和右旋转 (1543).mp4 (122.67 MB), 15:43
* 07 2-7 红黑树中添加新元素 (1456).mp4 (148.47 MB), 14:56
* 08 2-8 红黑树的性能测试 (1521).mp4 (80.30 MB), 15:21
* 09 2-9 更多红黑树相关的话题 (0930).mp4 (41.43 MB), 09:30
* 10 2-10 对于红黑树,任何不平衡都会在三次旋转内解决 最近学习.html (0.47 MB)
* 11 2-11 不能白板编程红黑树就是基础差别扯了。.html (0.71 MB)
* 05 哈希表和 SQRT 分解/
* 01 第1章 哈希表/
* 01 1-1 哈希表基础 (1951).mp4 (106.15 MB), 19:54
* 02 1-2 哈希函数 (2524).mp4 (143.91 MB), 25:24
* 03 1-3 Java中的hashCode方法 (2138).mp4 (138.81 MB), 21:38
* 04 1-4 链地址法 Seperate Chaining (1133).mp4 (80.53 MB), 11:33
* 05 1-5 实现属于我们自己的哈希表 (1852).mp4 (106.23 MB), 18:52
* 06 1-6 哈希表的动态空间处理与复杂度分析 (1754).mp4 (141.48 MB), 17:54
* 07 1-7 哈希表更复杂的动态空间处理方法 (2030).mp4 (128.27 MB), 20:31
* 08 1-8 更多哈希冲突的处理方法 (1006).mp4 (52.13 MB), 10:06
* 02 第2章 SQRT 分解/
* 01 2-1 什么是 SQRT 分解 (1759).mp4 (108.57 MB), 17:59
* 02 2-2 SQRT 分解的区间查询 (1631).mp4 (95.81 MB), 16:31
* 03 2-3 实现 SQRT 分解的区间查询 (2056).mp4 (119.37 MB), 20:56
* 04 2-4 SQRT 分解的更新操作 (0931).mp4 (82.45 MB), 09:31
* 05 2-5 作业以及 SQRT 分解总结 (0840).mp4 (29.30 MB), 08:41
* 06 2-6 使用 SQRT 分解解决区间最大值最小值问题 最近学习.html (0.01 MB)
* 06 2-6 使用 SQRT 分解解决区间最大值最小值问题.html (0.01 MB)
* 07 2-7 封装更加通用的 SQRT 分解数据结构 最近学习.html (0.01 MB)
* 07 2-7 封装更加通用的 SQRT 分解数据结构.html (0.01 MB)
* 04 阶段四:更广阔的算法和数据结构世界/
* 01 非比较排序/
* 01 第1章 计数排序/
* 01 1-1 什么是计数排序 最近学习.mp4 (89.79 MB), 15:49
* 02 1-2 使用计数排序解决力扣 75 号问题 (0628).mp4 (37.98 MB), 06:28
* 03 1-3 更一般的计数排序算法 (1822).mp4 (102.64 MB), 18:22
* 04 1-4 实现更一般的计数排序算法 (0723).mp4 (42.69 MB), 07:23
* 05 1-5 计数排序算法的重要性质:稳定性 (1404).mp4 (79.78 MB), 14:04
* 06 1-6 验证计数排序算法的稳定性 (1946).mp4 (110.57 MB), 19:46
* 02 第2章 LSD 基数排序/
* 01 2-1 LSD 字符串排序算法 (1810).mp4 (106.66 MB), 18:10
* 02 2-2 实现 LSD 字符串排序算法 (1620).mp4 (91.79 MB), 16:20
* 03 2-3 LSD 字符串排序算法的性能测试 (2100).mp4 (116.74 MB), 21:00
* 04 2-4 更多关于 LSD 字符串排序算法的讨论 (0948).mp4 (58.99 MB), 09:48
* 03 第3章 MSD 基数排序和桶排序/
* 01 3-1 MSD 基数排序 (1703).mp4 (100.33 MB), 17:03
* 02 3-2 MSD 基数排序的实现 (1927).mp4 (108.29 MB), 19:27
* 03 3-3 完成 MSD 基数排序 (1851).mp4 (123.56 MB), 18:51
* 04 3-4 MSD 基数排序的性能测试 (1406).mp4 (125.07 MB), 14:06
* 05 3-5 从 MSD 基数排序到桶排序 (1722).mp4 (107.11 MB), 17:22
* 06 3-6 桶排序的实现 (1635).mp4 (94.33 MB), 16:35
* 07 3-7 一个更简单的桶排序 (1430).mp4 (125.21 MB), 14:30
* 08 3-8 桶排序的性能测试和总结 (1247).mp4 (63.00 MB), 12:47
* 02 模式匹配/
* 01 第1章 字符串匹配和字符串哈希/
* 01 1-1 字符串匹配问题 (1416).mp4 (84.06 MB), 14:16
* 02 1-2 实现字符串暴力匹配 (1116).mp4 (68.51 MB), 11:16
* 03 1-3 字符串暴力匹配的性能并不差 (2141).mp4 (120.33 MB), 21:41
* 04 1-4 哈希是一种思想——字符串哈希解决匹配问题 (1814).mp4 (110.67 MB), 18:14
* 05 1-5 求解段式回文问题 (1026).mp4 (68.51 MB), 10:26
* 06 1-6 使用哈希思想求解段式回文 (1958).mp4 (111.62 MB), 19:58
* 02 第2章 从滚动哈希到 Rabin-Karp 算法/
* 01 2-1 快乐前缀问题 (1203).mp4 (72.07 MB), 12:03
* 02 2-2 使用哈希法求解快乐前缀问题 (2554).mp4 (185.74 MB), 25:54
* 03 2-3 重复的 DNA 问题 (1028).mp4 (60.40 MB), 10:28
* 04 2-4 滚动哈希法 (1118).mp4 (72.13 MB), 11:18
* 05 2-5 使用滚动哈希求解重复 DNA 问题 (1228).mp4 (70.10 MB), 12:28
* 06 2-6 从滚动哈希到 Rabin-Karp 算法 (1442).mp4 (83.99 MB), 14:42
* 07 2-7 实现 Rabin-Karp 算法 (1441).mp4 (81.74 MB), 14:41
* 08 2-8 Rabin-Karp 算法的性能分析 最近学习.mp4 (63.08 MB), 12:21
* 03 第3章 KMP 算法/
* 01 3-1 什么是 KMP 算法 (1516).mp4 (78.87 MB), 15:16
* 02 3-2 KMP 算法的基本原理 (1941).mp4 (115.70 MB), 19:41
* 03 3-3 KMP 算法正确性的证明 (0931).mp4 (57.60 MB), 09:31
* 04 3-4 什么是 LPS 数组 (1052).mp4 (50.86 MB), 10:52
* 05 3-5 LPS 数组的计算 (2343).mp4 (118.34 MB), 23:43
* 06 3-6 实现 LPS 数组 (1359).mp4 (80.65 MB), 13:59
* 07 3-7 KMP 算法的实现 (2205).mp4 (175.91 MB), 22:05
* 08 3-8 KMP 算法的复杂度分析 (2330).mp4 (127.58 MB), 23:30
* 09 3-9 更多和字符串算法相关 (1917).mp4 (122.26 MB), 19:17
* 03 随机算法,外存算法和更多/
* 01 第1章 随机算法/
* 01 1-1 随机算法的简单分类 最近学习.mp4 (123.57 MB), 23:10
* 02 1-2 随机选择中的陷阱:模偏差 (1033).mp4 (64.25 MB), 10:33
* 03 1-3 实现最基本的公平随机采样 (1335).mp4 (79.88 MB), 13:35
* 04 1-4 加权采样和操作系统中的彩票调度算法 (1743).mp4 (96.43 MB), 17:43
* 05 1-5 实现彩票调度算法 (1952).mp4 (105.47 MB), 19:52
* 06 1-6 拒绝采样 (1224).mp4 (76.54 MB), 12:24
* 07 1-7 使用 rand7,实现 rand10 (2127).mp4 (140.81 MB), 21:27
* 08 1-8 洗牌算法 (1723).mp4 (96.56 MB), 17:23
* 09 1-9 Knuth Shuffle 和多次采样 ().mp4 (162.05 MB), 20:23
* 10 1-10 数据流中采样:蓄水池抽样 (1641).mp4 (101.44 MB), 16:41
* 11 1-11 实现蓄水池抽样 (1529).mp4 (81.11 MB), 15:29
* 12 1-12 随机采样算法小节 (0743).mp4 (44.50 MB), 07:43
* 02 第2章 外存算法与外排序/
* 01 2-1 传统算法的局限性 (1832).mp4 (109.81 MB), 18:32
* 02 2-2 广义理解外存 (1059).mp4 (75.61 MB), 10:59
* 03 2-3 外存模型 (1703).mp4 (95.89 MB), 17:03
* 04 2-4 从简单的例子开始:外存寻找最小值 (1058).mp4 (78.46 MB), 10:58
* 05 2-5 外存二分搜索 (1239).mp4 (86.60 MB), 12:39
* 06 2-6 外存排序基础 (1031).mp4 (72.83 MB), 10:31
* 07 2-7 外存合并两个有序数组 (2317).mp4 (128.39 MB), 23:17
* 08 2-8 从外存算法看:为什么内存越大,计算机性能越好 (1553).mp4 (96.99 MB), 15:53
* 09 2-9 外存排序的重要优化 (1145).mp4 (62.78 MB), 11:45
* 10 2-10 外存合并 k 个有序数组 (2056).mp4 (118.30 MB), 20:56
* 11 2-11 k 分数据是一种算法思想 (1509).mp4 (78.55 MB), 15:09





![[衡天云]爆款云服务器 低至12元/月](/hty.png)