# 求职提升特训大实战视频课程：算法与数据结构高手养成

*Published:* 2024-07-14
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2025年1月7日，已超过 180天没有更新



轻松攻克重难点|大幅提升设计与实践能力|快速拔高重量级竞赛名次！

算法学得好，工作不愁找。不过对于很多非科班出身的程序员来说，学好算法是一件有难度的事情，知识版块多、理论性强、技术落地复杂，付出大量精力仍不一定学得好。本课程由兼具丰富信息学竞赛辅导经验+多年大厂从业经验的老师设计并讲解，在系统化梳理算法中高阶知识框架的基础上，结合实际工业需求与编程实践，带大家在吃透高难理论的同时掌握其真正优质的应用实践。

[![](https://www.xarjtc.com/wp-content/uploads/2024/07/5b29ce64157cebb.webp)](https://www.xarjtc.com/wp-content/uploads/2024/07/5b29ce64157cebb.webp)

**适合人群**

1、软件和高级数据岗位求职者

2、大厂中高级算法面试求职者

3、系统化深度提升算法与数据内功的同学

4、大中院校算法和机器人竞赛参赛者

**技术储备**

1、掌握其中任意一门编程语言（C++/Java/Python）

2、具备基础的算法数据结构知识（如：线性表栈、队列、排序、枚举、递归、递推）

3、算法0基础建议先学习上面推荐的：算法与数据结构入门体系课，再学习本课效果更佳

**环境参数**

无特殊要求 开启算法高手之旅吧～

**章节目录：**

第1章 引言 Introduction 试看1 节 | 9分钟

本章介绍课程学习路径以及这门课能给大家带来什么提升

收起列表

视频：

1-1 学前必看——这门课能给你什么 (08:52)

试看

第2章 贪心 Greedy 试看14 节 | 141分钟

贪心法，看似思路简单，实则暗坑无数。更重要的是，贪心法的使用条件苛刻，且灵活度高，决定了它很难系统地学习。本章我们帮你提炼总结了贪心法的几种分类，每一类的适用场景，以及问题分析和算法设计的通用流程，让你即便遇到陌生的贪心问题，也能做到丝毫不慌，同时给后续的搜索与动态规划章节打好理论基础...

收起列表

视频：

2-1 贪心不等于我全都要 (04:28)

试看

视频：

2-2 朴素的贪心法（上）最优化策略 (19:51)

视频：

2-3 朴素的贪心法（中）构造法 (26:03)

视频：

2-4 朴素的贪心法（下）二分答案 (15:50)

视频：

2-5 朴素贪心法的实战演练 (12:21)

视频：

2-6 随机贪心法：多试几次也许会更好 (21:30)

视频：

2-7 随机贪心法的实战演练 (12:03)

视频：

2-8 图论中的贪心：实时导航系统 (09:51)

视频：

2-9 搜索中的贪心：电脑鼠走迷宫大赛 (11:13)

视频：

2-10 本章小结 (03:45)

视频：

2-11 本章作业说明（看完说明再做题） (03:27)

作业：

2-12 夯实基础-朴素贪心法练习 《均分纸牌》

作业：

2-13 巩固提高-朴素贪心法练习《书的复制》

作业：

2-14 迈向进阶-随机贪心法练习《均分数据》

第3章 搜索基础 Basic Searching11 节 | 127分钟

与贪心不同，搜索是一种“全能算法”，但是处理不好，它也可能变成“全不能”。本章我们从搜索的理论基础开始讲起，总结出搜索通用的六大要素，并且由这六大要素衍生出一套完整的算法分析与设计的思路模板，结合经典的深度优先搜索与广度优先搜索，帮你真正做到“遇题不会搜一下”。...

收起列表

视频：

3-1 搜索法：看似枚举，但没那么简单 (04:11)

视频：

3-2 搜索基础理论：状态，搜索树与状态关系图 (15:10)

视频：

3-3 深度优先搜索（上）：最常用的搜索方法 (23:13)

视频：

3-4 深度优先搜索（下）：常见的状态扩展模型 (26:43)

视频：

3-5 深度优先搜索实战：中层领导不好当 (17:35)

视频：

3-6 广度优先搜索：用空间换时间的搜索方法 (15:03)

视频：

3-7 广度优先搜索实战：疫情传播问题 (17:08)

视频：

3-8 本章小结 (04:28)

视频：

3-9 本章作业说明（看完再做题） (02:50)

作业：

3-10 夯实基础-深度优先搜索练习《产生数》

作业：

3-11 巩固提高-广度优先搜索练习《最长路》

第4章 搜索进阶 Advanced Searching14 节 | 192分钟

在学习了搜索基础之后，相信你不难发现，搜索的潜力非常的巨大，如果优化得当，它一样可以成为性能超群的算法，甚至在工业界扮演非常重要的角色。本章我们系统地介绍搜索的多种进阶优化策略，从搜索形式的优化，到使用启发函数进行搜索状态的评估，再到如何用剪枝优化去掉非最优情况，让你学完后，能够全方位彻底地压榨搜索...

收起列表

视频：

4-1 双向广度优先搜索：你踏出1步，我踏出99步 (11:18)

视频：

4-2 双向广度优先搜索实战：走迷宫问题 (25:53)

视频：

4-3 迭代加深搜索：每一次都更深一点- (13:29)

视频：

4-4 迭代加深搜索实战：再战走迷宫问题 (23:07)

视频：

4-5 启发式搜索：让盲目搜索变得智能 (07:56)

视频：

4-6 A\*算法：最经典的启发式搜索 (12:53)

视频：

4-7 IDA\*算法：迭代加深的A\* (09:21)

视频：

4-8 启发式搜索实战：游戏自动寻路 (31:17)

视频：

4-9 搜索优化：若要树长高，剪枝不可少 (25:31)

视频：

4-10 剪枝实战：木棍问题 (24:28)

视频：

4-11 本章小结 (03:54)

视频：

4-12 作业说明 (02:16)

作业：

4-13 迈向进阶-搜索进阶练习《骑士精神》

作业：

4-14 挑战高阶-搜索进阶练习《循环赛》

第5章 动态规划基础 Dynamic Programming Basics 试看13 节 | 125分钟

动态规划是许多人学习算法的瓶颈，被戏称为“从入门到放弃”。它的理论较为晦涩，复杂度高，且很少有人能讲明白动态规划从理论到解题之间的模糊地带——如何根据问题的条件，系统地设计算法。本章我们在讲清楚动态规划的理论知识的基础上，从庞杂的细节中提炼出一套标准的问题分析和算法设计的流程，助你“遇题有底气，做题...

收起列表

视频：

5-1 动态规划DP：超越算法的思维 (06:55)

试看

视频：

5-2 一个简单的例子：跳方格 (07:53)

视频：

5-3 DP两种模式：记忆化搜索，递推+枚举 (10:50)

视频：

5-4 DP三要素：阶段，状态，决策 (17:48)

视频：

5-5 DP两前提：最优子结构，无后效性 (15:01)

视频：

5-6 稍微复杂一点的例子：01背包和多重背包 (13:09)

视频：

5-7 DP分析流程1：划分阶段 (18:17)

视频：

5-8 DP分析流程2：定义状态 (13:24)

视频：

5-9 DP分析流程3：确定决策 (13:05)

视频：

5-10 本章小结 (05:26)

视频：

5-11 本章作业说明（看完再做题） (02:19)

作业：

5-12 夯实基础-动态规划练习《0-N背包》

作业：

5-13 巩固提高-动态规划练习《动物博览会》

第6章 动态规划进阶 Advanced Dynamic Programming15 节 | 203分钟

打好动态规划的基础之后，相信大家最关心的，就是怎么才能砍瓜切菜地解决高难度问题。本章系统地介绍了动态规划的五大类常见模型，以及如何应用前面讲解的分析流程，对各类典型模型进行DP方法的设计与实现，此外，还讲解了DP的三大优化策略，并分析了他们的适用条件和实现方法，帮你啃下动态规划的最后一块硬骨头...

收起列表

视频：

6-1 常见模型分析1：线性模型 (18:48)

视频：

6-2 线性模型实战：青蛙过河 (15:20)

视频：

6-3 常见模型分析2：串模型 (22:02)

视频：

6-4 串模型实战：回文路径 (21:47)

视频：

6-5 常见模型分析3：区间模型（上） (21:40)

视频：

6-6 常见模型分析3：区间模型（下） (15:39)

视频：

6-7 区间模型实战：字符串折叠 (19:38)

视频：

6-8 常见模型分析4：树形模型 (12:41)

视频：

6-9 树形模型实战：谷仓涂色 (17:24)

视频：

6-10 常见模型分析5：状态压缩模型 (15:54)

视频：

6-11 状态压缩模型实战：种草 (16:15)

视频：

6-12 本章小结 (03:08)

视频：

6-13 作业说明 (02:08)

作业：

6-14 挑战高阶：动态规划进阶练习《压缩》

作业：

6-15 迈向进阶：动态规划进阶练习《中国象棋》

第7章 算法综合实战——全自动物流系统设计与实现10 节 | 115分钟

在学完了贪心、搜索及动态规划三大类算法之后，相信你已经跃跃欲试了。本章我们借助一个实战项目《全自动物流系统》，在用工业界的流程和标准进行规范化的基础上，对前面所学的三大类算法进行系统的，综合的实战演练。相信通过本章的项目实战，你的算法设计和落地能力，将会再上一个台阶...

收起列表

视频：

7-1 实战项目与章节内容简介 (04:12)

视频：

7-2 需求分析：物件装车 (07:23)

视频：

7-3 算法设计与实现：物件装车 (29:11)

视频：

7-4 需求分析：行车路线规划 (05:35)

视频：

7-5 算法设计与实现：行车路线 (35:03)

视频：

7-6 运行环境：基于Flutter和Nodejs的WebApp (08:02)

视频：

7-7 环境配置：VS Code + Flutter (06:27)

视频：

7-8 环境配置：VS Code + Nodejs (03:41)

视频：

7-9 项目测试，调试，及最终效果演示 (12:51)

视频：

7-10 本章小结 (02:22)

第8章 堆与堆的高级变种 Heap12 节 | 94分钟

堆的应用极为广泛，它不仅是各种优先队列实现的基础数据结构，同时还能作为各种高级算法的辅助和优化工具。本章我们从原理、实现细节和性能分析的角度，对堆进行了全方位的解析，同时还介绍了堆用来支持特殊操作的高级变种，学完本章，相信一提到堆，你绝对可以信手拈来 ...

收起列表

视频：

8-1 优先队列与堆：高级数据结构的敲门砖 (05:20)

视频：

8-2 堆，一种特殊的二叉树 (05:57)

视频：

8-3 堆的两种构建方法 (10:17)

视频：

8-4 堆的插入 (05:20)

视频：

8-5 堆的删除 (06:23)

视频：

8-6 堆排序 (07:36)

视频：

8-7 堆的实战与复杂度分析 (19:56)

视频：

8-8 二项堆：可以合并的堆 (13:30)

视频：

8-9 斐波那契堆：最复杂最强大的堆 (15:39)

视频：

8-10 本章小结 + 作业说明 (03:08)

作业：

8-11 巩固提高：有重复值的堆的实现

作业：

8-12 迈向进阶：斐波那契堆的实现

第9章 二叉搜索树基础 Binary Search Tree10 节 | 106分钟

二叉搜索树是所有树形数据结构中最为重要的一种，可以说只要有数据检索的地方，都离不开二叉搜索树。经过本章的学习，你将能够熟悉并掌握二叉搜索树的全部基本操作，包括建立，插入，删除，查找，以及经典的求第K小元素的应用，并且初步了解平衡化旋转，为后续平衡二叉树以及近似平衡树的学习打好基础...

收起列表

视频：

9-1 二叉搜索树BST：为何它如雷贯耳 (05:55)

视频：

9-2 BST的表示法 (09:05)

视频：

9-3 BST的插入和查找 (13:37)

视频：

9-4 BST的删除 (14:05)

视频：

9-5 BST的灵活应用——第K小元素 (15:52)

视频：

9-6 BST的实战与复杂度分析 (27:36)

视频：

9-7 拒绝BST退化：平衡二叉搜索树 (08:23)

视频：

9-8 初识平衡化旋转 (08:52)

视频：

9-9 本章小结 + 作业说明 (02:11)

作业：

9-10 巩固提高：利用BST查找范围内所有元素的平均值

第10章 二叉搜索树的优化：平衡二叉搜索树8 节 | 68分钟

二叉搜索树虽好，但有可能退化，所以无论实际应用，还是考试面试，平衡二叉搜索树才是重头。本章带你学习两种经典的平衡二叉搜索树——AVL树与红黑树，从原理到实现的每个细节出发，带你彻底理解和掌握这类又快又难的高级数据结构...

收起列表

视频：

10-1 AVL树：没有它就没有Windows (05:36)

视频：

10-2 AVL树的插入，平衡化旋转以及平衡因子 (18:09)

视频：

10-3 AVL树的删除，以及自底向上调整 (11:24)

视频：

10-4 红黑树：应用最广泛的平衡树 (06:23)

视频：

10-5 红黑树的插入，以及红黑性质 (10:31)

视频：

10-6 红黑树的删除 (13:40)

视频：

10-7 本章小结 + 作业说明 (02:04)

作业：

10-8 迈向进阶：实现红黑树的合并

第11章 平衡树的平替：近似平衡二叉树14 节 | 146分钟

平衡二叉树性能强大，但缺点是太复杂，如果时间有限，比如面对算法竞赛，又或者对空间要求很苛刻，不能有多余数据，怎么办？本章带你了解一类特殊的二叉搜索树——近似平衡二叉树，它们用较低的实现难度达到接近平衡二叉树的性能。学完本章，相信你能够了解这些近似平衡树各自的实现原理，性能比较，优缺点和适用场景，并且...

收起列表

视频：

11-1 竞赛党来不及写红黑树怎么办？ (06:28)

视频：

11-2 Treap = Tree + Heap (06:49)

视频：

11-3 Treap的插入和删除 (11:44)

视频：

11-4 Treap的实战与复杂度分析 (21:48)

视频：

11-5 Splay树：最节省空间的BST变体 (04:16)

视频：

11-6 Splay树的插入 (12:24)

视频：

11-7 Splay树的合并和删除 (08:25)

视频：

11-8 Splay树的实战与复杂度分析 (23:57)

视频：

11-9 虚二叉树：限制区间的BST (04:50)

视频：

11-10 虚二叉树的插入，查找和删除 (17:41)

视频：

11-11 虚二叉树的实战与复杂度分析 (14:51)

视频：

11-12 各种平衡BST性能横向对比+适用场景分析 (09:37)

视频：

11-13 本章小结+作业说明 (02:28)

作业：

11-14 挑战高阶：郁闷的出纳员

第12章 多维树形结构 Multi-Dimensional Tree Structures15 节 | 160分钟

二叉搜索树并非万能，针对特殊的应用场景往往有更好的的选择。本章介绍其他三种常见的多维树形结构——字典树，线段树和树状数组，重点在于他们的适用场景，原理，以及如何在他们的基础上进行拓展，用来处理更多更复杂的问题。学完本章后，你不仅能具备解决更多复杂数据问题的能力，还能体会到树形结构的优美与强大...

收起列表

视频：

12-1 多维空间操作需要什么样的树 (05:30)

视频：

12-2 字典树Trie：高效的单词查询结构 (05:26)

视频：

12-3 Trie的表示，查找，插入和删除 (08:20)

视频：

12-4 Trie的实战与复杂度分析 (17:17)

视频：

12-5 线段树：区域统计的强大工具 (06:32)

视频：

12-6 线段树的构建与查找 (12:13)

视频：

12-7 线段树的插入与删除 (17:46)

视频：

12-8 线段树的实战与复杂度分析 (29:05)

视频：

12-9 树状数组：压缩算法离不开它 (05:53)

视频：

12-10 树状数组的建立和查找 (16:11)

视频：

12-11 树状数组的插入和删除 (16:11)

视频：

12-12 树状数组的实战和复杂度分析 (14:42)

视频：

12-13 本章小结+作业说明 (03:55)

作业：

12-14 迈向进阶：Trie - 寻找多义词

作业：

12-15 挑战高阶：线段树 - 区间涂色

第13章 复杂链式结构 Complex Linked Structure15 节 | 154分钟

学完前面几章，你一定会有疑问：“数据结构难道就是各种树吗？”实则不然，各种非树形结构依旧在许多不同的应用场景中占有非常重要的地位。本章我们介绍并查集，块状链表和跳跃表三种非树形的高级数据结构，通过学习，你不仅能够掌握他们的原理，实现细节和适用场景，还能掌握更多的数据结构优化的思路，让自己的思维和眼界...

收起列表

视频：

13-1 数据结构不止有树，链表也可以很高级 (04:43)

视频：

13-2 并查集：合并+查找+集合 (04:17)

视频：

13-3 并查集的合并与查找 (11:29)

视频：

13-4 并查集的实战与复杂度分析 (09:43)

视频：

13-5 跳跃表：互联网时代的优化万金油 (04:33)

视频：

13-6 跳跃表的构建和查找 (13:59)

视频：

13-7 跳跃表的插入和删除 (13:14)

视频：

13-8 跳跃表的实战与复杂度分析 (20:48)

视频：

13-9 块状链表：和区块链是一回事吗 (05:29)

视频：

13-10 块状链表的查找，分裂和构建 (15:07)

视频：

13-11 块状链表的插入和删除 (08:52)

视频：

13-12 块状链表的合并 (11:27)

视频：

13-13 块状链表的实战与复杂度分析 (26:57)

视频：

13-14 本章小结+作业说明 (03:16)

作业：

13-15 挑战高阶：可变数列的部分最大值

第14章 数据结构综合实战——数据库的设计与实现9 节 | 74分钟

经过前面章节的学习，你应该已经充分掌握了多种高级数据结构的原理，特征和实现方法。现在，就让我们来通过一个《数据库设计》的项目，来对所学的数据结构进行一个综合实战，检验一下自己对数据类问题的分析和处理的能力。本章我们依旧会按照工业界的标准来进行需求分析，模块设计，数据结构实现和测试，让你真正学以致用...

收起列表

视频：

14-1 什么是NoSQL数据库？ (04:59)

视频：

14-2 需求分析1：表的建立及查询 (08:53)

视频：

14-3 需求分析2：插入记录 (04:20)

视频：

14-4 需求分析3：删除表和记录 (04:17)

视频：

14-5 需求分析4：更新记录 (05:29)

视频：

14-6 需求分析5：索引的建立及查询 (06:53)

视频：

14-7 系统设计与数据结构选择 (15:23)

视频：

14-8 实现与效果演示 (20:33)

视频：

14-9 本章小结 (02:57)

第15章 NOIP模拟赛（介于普及组和提高组之间的难度）5 节 |

本章采用NOIP赛制：无提交机会，代码结束后统一提交参与评测，根据通过的数据点给分，最后会给出解题报告与备赛策略，提前练习，事半功倍。

收起列表

作业：

15-1 赛制简介

作业：

15-2 题目1：教主的花园

作业：

15-3 题目2：序列问题

作业：

15-4 题目3：守卫农场

作业：

15-5 题目4：营业额统计

第16章 ICPC模拟赛（介于网络预选赛和亚洲区域赛之间的难度）10 节 |

本章采用ICPC赛制制定竞赛规则，提前模拟 比赛不慌。

收起列表

作业：

16-1 赛制简介

作业：

16-2 Problem A - K-th Largest Value

作业：

16-3 Problem B - Minimal Cost

作业：

16-4 Problem C - Pekora and Trampol

作业：

16-5 Problem D - Zookeeper and The

作业：

16-6 Problem E - Fib-tree

作业：

16-7 Problem F - Magnets

作业：

16-8 Problem G - Switch and Flip

作业：

16-9 Problem H - Yuezheng Ling and

作业：

16-10 Problem I - Ruler Of The Zoo

第17章 总结 Conclusion1 节 | 6分钟

总结本课程的所有知识，回顾学习成果，对后续学习的策略和实战平台进行推荐

收起列表

视频：

17-1 课程总结与回顾 (05:50)

本课程已完结