价格: 19 学币

分类: 算法和数据结构

发布时间: 2022年1月23日 10:55

最近更新: 2022年2月20日 15:18

资源类型: VIP


第1章 算法题解-课程介绍

课程简介:本套课程不讲算法基础知识,专攻算法题解。将主流经典的面试题全面归类梳理,带你掌握高
效解题思路,摆脱题海战术, 让你短期内掌握算法面试体系,深入理解算法设计思路通过多题实践将
算法思想付诸实践。
1-1 算法面试专题课(Java版)-课程导学 (18:43)
1-2 课程导学-图文教辅

第2章 算法不难,算法很有趣

万事开头难,提起计算机算法,很多同学可能觉得它很神秘、很难、很数学。其实算法源于生活,它可以
形象地理解为,我们日常生活中做一件事情的具体流程。本章我们通过实际的例子,给大家树立起“算
法不难学”的印象,培养起学习算法的兴趣。 ...
2-1 有趣、简单的算法问题 (15:21)
2-2 有趣简单的问题-图文解析

第3章 数学问题:经典数学算法

本章通过常见的数学相关的算法帮助大家理解面试、笔试中常见的数学算法相关的问题。
3-1 最大公约数算法 (24:20)
3-2 最大公约数算法-图文解析
3-3 快速模取幂算法 (19:08)
3-4 快速模取幂算法-图文解析
3-5 组合计数算法 (27:01)
3-6 组合计数-图文解析
3-7 概率相关算法 (24:26)
3-8 概率问题-图文解析

第4章 数组相关问题

数组可谓大家最熟悉的数据结构了,我们甚至都不把它作为一种数据结构——因为几乎所有编程语言都有
内置的数组类型,我们往往不自觉地在使用它。别看它结构简单,我们也不能小瞧它,涉及到数组的题
目可谓千变万化、层出不穷。但是万变不离其宗,我们通过典型的例题帮助大家理解数组问题的套路和解法。 ...
4-1 数组作为存储单元 (15:46)
4-2 数组作为存储单元-图文解析
4-3 荷兰国旗问题 (10:47)
4-4 数组作为特殊map (17:26)
4-5 分桶原理求解最宽空矩形区域 (17:32)
4-6 数组——作为特殊map-图文解析
4-7 双指针在数组的应用 (23:47)
4-8 数组——双指针-图文解析
4-9 数组 滑动窗口 (20:55)
4-10 替换子串使得字符串平衡问题 (15:33)
4-11 数组——滑动窗口-图文解析

第5章 链表相关的问题

链表可谓数组的亲兄弟,在笔试面试中,链表的题目不算多——因为它也算比较简单的数据结构。和数组
一样,我们通常可能也不把链表作为一种数据结构。到那时我们同样不可轻视它,涉及到链表的题目大
多不算太难,但是比较繁琐,我们在本章就和大家聊聊链表最基本的增、删、查、改等操作。 ...
5-1 熟悉最基本的链表操作 (09:20)
5-2 链表——基本操作-图文解析
5-3 删除和为 0 的连续节点问题 (16:55)
5-4 链表之懒删除 (13:49)
5-5 链表的懒删除-图文解析
5-6 链表翻转 (21:44)
5-7 链表的翻转-图文解析
5-8 链表之滑动窗口1 (19:57)
5-9 链表的滑动窗口1-图文解析
5-10 链表滑动窗口2 (18:12)
5-11 链表的滑动窗口2-图文解析
5-12 链表复制 (28:54)

第6章 堆栈相关问题

堆栈是一种简单的数据结构。我们在日常生活中洗碗后叠在一起,就是一个天然堆栈的体现。计算机中的
堆栈就是日常生活中这些例子的抽象,本章我们会总结探讨堆栈相关的问题。
6-1 最基本的堆栈实现与应用 (22:37)
6-2 堆栈的基本操作-图文解析
6-3 递归问题的堆实现——隐式堆栈 (18:44)
6-4 递归与隐式堆栈-图文解析
6-5 二叉树遍历与堆栈 (21:33)
6-6 二叉树遍历与堆栈-图文解析
6-7 单调堆栈及应用 (30:00)
6-8 单调堆栈-图文解析&作业

第7章 队列相关问题

队列是先进先出的结构。日常生活中我们就会排队,计算机中的队列就是日恒生活中排队的抽象。本章我
们用过例题来认识、理解队列并学习显示、隐式队列的应用
7-1 简单队列的应用与实现 (24:13)
7-2 简单队列的应用与实现-图文解析&作业
7-3 双端队列的实现 (21:12)
7-4 双端队列实例-图文解析&作业
7-5 环形队列的实现 (20:09)
7-6 循环/环形队列实例-图文解析&作业
7-7 两个队列模拟堆栈 以及 两个堆栈模拟队列 (23:27)
7-8 堆栈和队列互相模拟-图文解析&作业
7-9 单调队列的应用 (25:08)
7-10 单调队列-图文解析&作业
7-11 BFS一例 (20:47)
7-12 BFS一例-图文解析&作业

第8章 分治的特例——二分查找

二分查找是计算机科学中的一个常见且重要的算法。它基于的思想是判断一个给定的候选解是不是一个问
题的真正的解比找到问题的一个真正的解容易。所以计算机也不是高高在上、万能的。我们要相信,如
果我们不知道问题的解,则计算机通常也不知道。所以我们帮助计算机来“猜”一个解,再来判断这个
解是否合适来调整我们的才想。...
8-1 二分算法简介 (21:54)
8-2 二分查找算法-图文解析&作业
8-3 “先猜后证”(1) (14:17)
8-4 “先猜后证”(2) (13:27)
8-5 先猜后证-图文解析&作业
8-6 复杂的二分查找(1) (13:17)
8-7 复杂的二分查找(2) (12:36)
8-8 复杂的二分查找算法-图文解析&作业

第9章 递归与分治

我们在解决一个大问题的时候,通常也会把它切分为小问题,来一个一个解决。这是因为小问题往往比大
问题更容易解决。这就是分而治之,各个击破的思想。本章,我们来聊聊如何通过计算机算法实现这个
简单朴素的思想。同时,在计算中解决小问题的模式通常以相同或相似的形式出现,从而就出现了递归
。递归不神秘,分治很简单,...
9-1 递归一例:一个“不太好”的例子 (19:52)
9-2 斐波那契数、就阶乘-图文题解&作业
9-3 递归再例:八皇后问题(上) (13:11)
9-4 -2 递归再例:八皇后问题(下) (11:38)
9-5 八皇后题解-图文解析&作业
9-6 理解递归:递归就是隐式图搜索、枚举 (23:49)
9-7 隐式图搜索-图文解析&作业
9-8 用递归框架举例(DFS), 利用递归实现二分查找(上) (13:41)
9-9 用递归框架举例(DFS), 利用递归实现二分查找(下) (13:59)
9-10 递归的分治框架-图文解析&作业

第10章 图相关算法

图论起源于著名数学家欧拉所研究的“七桥问题”,也就是通常我们说的一笔画问题。计算机算法面试中
的图论问题,通常也不会太难,但是它涉及到的知识点比较多,例如二叉树、广度优先、深度优先等等
。图论问题的特点就是综合性强,这也是在笔试面试中,命题人钟爱图论问题的元素之一吧。我们将在
本章中聊聊面试中的图论问题—...
10-1 广度优先搜索(BFS) (22:23)
10-2 广度优先搜索-图文解析&作业
10-3 深度优先搜索 (22:41)
10-4 深度优先搜索-图文解析&作业
10-5 二叉树的几种遍历方法.mp4 (20:55)
10-6 二叉树遍历方法-图文解析&作业
10-7 最小生成树(上) (14:38)
10-8 最小生成树(下) (15:44)
10-9 最小生成树-图文解析&作业
10-10 拓扑排序(上) (13:40)
10-11 拓扑排序(下) (14:43)
10-12 拓扑排序-图文解析&作业
10-13 最短路算法的一种实现(上) (15:08)
10-14 最短路算法的一种实现(下) (13:37)
10-15 最短路的一种实现

第11章 贪心算法

贪心算法是最简单、最直截了当的算法。比如我们学过的最小生成树的Prim和Krusal算法,以
及最段路的dijkstra算法都是贪心算法的经典例子。贪心算法有着简单、优美的魅力。而贪心
算法的难点在于证明,在本章中我们和大家聊聊贪心算法的经典应用,并对部分问题给出理论或者感性
上的证明。 ...
11-1 最简单的贪心算法 (15:59)
11-2 贪心算法初识-图文解析&作业
11-3 贪心算法进阶 (18:48)
11-4 中级贪心算法图文解析&作业解析
11-5 高级贪心算法及证明(1) (15:56)
11-6 高级贪心算法及证明(2) (14:58)
11-7 高级贪心算法-图文解析&作业

第12章 位运算

位运算是计算机所特有的操作,因为计算机只认识0和1,所以它们天然地“善于”位运算操作。我们在
本章和大家探讨下一些位元算在解决问题时的经应用,同时也为学习动态规划打下一些基础。因为有一
类动态规划题目的状态表示需要使用位运算。 ...
12-1 位运算简介和举例(1) (14:36)
12-2 位运算简介和举例(2) (14:09)
12-3 位运算-图文解析&作业
12-4 只出现一次的数和只出现一次的两个数 (16:22)
12-5 出现次数为1的数-图文解析
12-6 只出现两次的数 (21:17)
12-7 只出现一次的两个数-图文解析&作业

第13章 动态规划

动态规划几乎是笔试和面试的必考题,可谓重中之重, 不少人可能对其望而生畏。本章我们通过一些题
目,对动态规划的基本思想做一些总结,形成一些解动态规划题目的“套路”,从而让大家轻松应对这类题目。
13-1 入门和举例(1) (14:42)
13-2 入门和举例(2) (13:48)
13-3 简单动态规划状态表示(1) (15:52)
13-4 简单动态规划状态表示(2) (13:00)
13-5 动态规划入门-图文解析
13-6 更复杂度的动态规划状态(1) (11:36)
13-7 更复杂度的动态规划状态(2) (14:40)
13-8 动态规划—简单状态表示-图文解析
13-9 动态规划—复杂状态表示-图文解析
13-10 优化,利用单调性——最长单调子序列(1) (14:57)
13-11 优化,利用单调性——最长单调子序列(2) (12:44)
13-12 动态规划—利用单调性做优化-图文解析
13-13 动态规划与组合计数 (21:44)
13-14 动态规划之组合计数-图文解析
13-15 利用位运算表示状态 (21:41)
13-16 利用位运算表示状态-图文解析

第14章 杂题-那些你想不到的题

有些题目很难归类,但是又真实存在,它需要我们综合所学的知识点并灵活运用。所谓“戏法人人会变,
各有巧妙不同”,大家学到的知识点都是类似的,但是要达到灵活运用、融会贯通,还需假以时日,勤
学苦练。本章我们通过一些典型的例题,帮助大家梳理知识点,同时讨论一些有趣的的题目。 ...
14-1 最大子数组和的几种理解 (26:23)
14-2 最大子数组和问题的几种理解-图文解析
14-3 “枚举一半”的思想 (22:14)
14-4 折半查找-图文解析
14-5 hash思想 (26:50)
14-6 Hash-图文解析
14-7 杂题几例 (29:09)
14-8 杂题-图文解析

第15章 必备软技能-防止思路上的盲点

程序员不仅仅是低头写码,还要与人沟通。虽然我们总说”show me the code“,但是
代码并不是我们交流的唯一手段。更何况,我们在实现代码之前,通常需要简单和别人交流下思路,以
防止思路上的盲点,另外我们还有很多的设计文档、代码注释需要完成,这些无疑需要我们有良好的沟
通能力。面试中也一样,面试官也是人,他通...
15-1 简历、电面、笔试、面试 (17:34)
15-2 软技能——简历、笔试、电面、面试-配套图文