本套课程不讲算法基础知识,专攻算法题解。讲师作为诸多算法练习相关网站出题人,拥有多年出题及面试经验,将大厂主流经典的面试题全面归类梳理,带你掌握高效解题思路,摆脱题海,举一反三,只需20小时,完成面试准备。全网稀缺:专攻算法面试,专注刷题练习
第1章 算法题解-课程介绍 试看2 节 | 19分钟
课程简介:本套课程不讲算法基础知识,专攻算法题解。将主流经典的面试题全面归类梳理,带你掌握高效解题思路,摆脱题海战术, 让你短期内掌握算法面试体系,深入理解算法设计思路通过多题实践将算法思想付诸实践。
收起列表
第2章 算法不难,算法很有趣2 节 | 16分钟
万事开头难,提起计算机算法,很多同学可能觉得它很神秘、很难、很数学。其实算法源于生活,它可以形象地理解为,我们日常生活中做一件事情的具体流程。本章我们通过实际的例子,给大家树立起“算法不难学”的印象,培养起学习算法的兴趣。 …
收起列表
第3章 数学问题:经典数学算法8 节 | 95分钟
收起列表
第4章 数组相关问题11 节 | 122分钟
数组可谓大家最熟悉的数据结构了,我们甚至都不把它作为一种数据结构——因为几乎所有编程语言都有内置的数组类型,我们往往不自觉地在使用它。别看它结构简单,我们也不能小瞧它,涉及到数组的题目可谓千变万化、层出不穷。但是万变不离其宗,我们通过典型的例题帮助大家理解数组问题的套路和解法。 …
收起列表
视频:4-1 数组作为存储单元 (15:46)
视频:4-3 荷兰国旗问题 (10:47)
视频:4-4 数组作为特殊map (17:26)
视频:4-5 分桶原理求解最宽空矩形区域 (17:32)
视频:4-7 双指针在数组的应用 (23:47)
视频:4-9 数组 滑动窗口 (20:55)
视频:4-10 替换子串使得字符串平衡问题 (15:33)
第5章 链表相关的问题12 节 | 129分钟
链表可谓数组的亲兄弟,在笔试面试中,链表的题目不算多——因为它也算比较简单的数据结构。和数组一样,我们通常可能也不把链表作为一种数据结构。到那时我们同样不可轻视它,涉及到链表的题目大多不算太难,但是比较繁琐,我们在本章就和大家聊聊链表最基本的增、删、查、改等操作。 …
收起列表
视频:5-1 熟悉最基本的链表操作 (09:20)
视频:5-3 删除和为 0 的连续节点问题 (16:55)
视频:5-4 链表之懒删除 (13:49)
视频:5-6 链表翻转 (21:44)
视频:5-8 链表之滑动窗口1 (19:57)
视频:5-10 链表滑动窗口2 (18:12)
视频:5-12 链表复制 (28:54)
第6章 堆栈相关问题8 节 | 93分钟
堆栈是一种简单的数据结构。我们在日常生活中洗碗后叠在一起,就是一个天然堆栈的体现。计算机中的堆栈就是日常生活中这些例子的抽象,本章我们会总结探讨堆栈相关的问题。
收起列表
视频:6-5 二叉树遍历与堆栈 (21:33)
视频:6-7 单调堆栈及应用 (30:00)
第7章 队列相关问题12 节 | 135分钟
队列是先进先出的结构。日常生活中我们就会排队,计算机中的队列就是日恒生活中排队的抽象。本章我们用过例题来认识、理解队列并学习显示、隐式队列的应用
收起列表
视频:7-11 BFS一例 (20:47)
第8章 分治的特例——二分查找8 节 | 76分钟
二分查找是计算机科学中的一个常见且重要的算法。它基于的思想是判断一个给定的候选解是不是一个问题的真正的解比找到问题的一个真正的解容易。所以计算机也不是高高在上、万能的。我们要相信,如果我们不知道问题的解,则计算机通常也不知道。所以我们帮助计算机来“猜”一个解,再来判断这个解是否合适来调整我们的才想。…
收起列表
视频:8-3 “先猜后证”(1) (14:17)
视频:8-4 “先猜后证”(2) (13:27)
视频:8-6 复杂的二分查找(1) (13:17)
视频:8-7 复杂的二分查找(2) (12:36)
第9章 递归与分治10 节 | 97分钟
我们在解决一个大问题的时候,通常也会把它切分为小问题,来一个一个解决。这是因为小问题往往比大问题更容易解决。这就是分而治之,各个击破的思想。本章,我们来聊聊如何通过计算机算法实现这个简单朴素的思想。同时,在计算中解决小问题的模式通常以相同或相似的形式出现,从而就出现了递归。递归不神秘,分治很简单,…
收起列表
第10章 图相关算法15 节 | 154分钟
图论起源于著名数学家欧拉所研究的“七桥问题”,也就是通常我们说的一笔画问题。计算机算法面试中的图论问题,通常也不会太难,但是它涉及到的知识点比较多,例如二叉树、广度优先、深度优先等等。图论问题的特点就是综合性强,这也是在笔试面试中,命题人钟爱图论问题的元素之一吧。我们将在本章中聊聊面试中的图论问题—…
收起列表
视频:10-1 广度优先搜索(BFS) (22:23)
视频:10-5 二叉树的几种遍历方法.mp4 (20:55)
视频:10-7 最小生成树(上) (14:38)
视频:10-8 最小生成树(下) (15:44)
视频:10-10 拓扑排序(上) (13:40)
视频:10-11 拓扑排序(下) (14:43)
第11章 贪心算法7 节 | 66分钟
贪心算法是最简单、最直截了当的算法。比如我们学过的最小生成树的PrIM和Krusal算法,以及最段路的dijkstra算法都是贪心算法的经典例子。贪心算法有着简单、优美的魅力。而贪心算法的难点在于证明,在本章中我们和大家聊聊贪心算法的经典应用,并对部分问题给出理论或者感性上的证明。 …
收起列表
第12章 位运算7 节 | 67分钟
位运算是计算机所特有的操作,因为计算机只认识0和1,所以它们天然地“善于”位运算操作。我们在本章和大家探讨下一些位元算在解决问题时的经应用,同时也为学习动态规划打下一些基础。因为有一类动态规划题目的状态表示需要使用位运算。 …
收起列表
视频:12-6 只出现两次的数 (21:17)
第13章 动态规划16 节 | 155分钟
动态规划几乎是笔试和面试的必考题,可谓重中之重, 不少人可能对其望而生畏。本章我们通过一些题目,对动态规划的基本思想做一些总结,形成一些解动态规划题目的“套路”,从而让大家轻松应对这类题目。
收起列表
第14章 杂题-那些你想不到的题8 节 | 105分钟
有些题目很难归类,但是又真实存在,它需要我们综合所学的知识点并灵活运用。所谓“戏法人人会变,各有巧妙不同”,大家学到的知识点都是类似的,但是要达到灵活运用、融会贯通,还需假以时日,勤学苦练。本章我们通过一些典型的例题,帮助大家梳理知识点,同时讨论一些有趣的的题目。 …
收起列表
视频:14-3 “枚举一半”的思想 (22:14)
视频:14-5 hash思想 (26:50)
视频:14-7 杂题几例 (29:09)
第15章 必备软技能-防止思路上的盲点2 节 | 18分钟
程序员不仅仅是低头写码,还要与人沟通。虽然我们总说”show me the code“,但是代码并不是我们交流的唯手段。更何况,我们在实现代码之前,通常需要简单和别人交流下思路,以防止思路上的盲点,另外我们还有很多的设计文档、代码注释需要完成,这些无疑需要我们有良好的沟通能力。面试中也一样,面试官也是人,他通…
收起列表