【9266】-算法面试专题课(Java版)
第1章 算法题解-课程介绍
课程简介:本套课程不讲算法基础知识,专攻算法题解。将主流经典的面试题全面归类梳理,带你掌握高效解题思路,摆脱题海战术, 让你短期内掌握算法面试体系,深入理解算法设计思路通过多题实践将算法思想付诸实践。
共 2 节
第2章 算法不难,算法很有趣
万事开头难,提起计算机算法,很多同学可能觉得它很神秘、很难、很数学。其实算法源于生活,它可以形象地理解为,我们日常生活中做一件事情的具体流程。本章我们通过实际的例子,给大家树立起“算法不难学”的印象,培养起学习算法的兴趣。 ...
共 2 节
第3章 数学问题:经典数学算法
本章通过常见的数学相关的算法帮助大家理解面试、笔试中常见的数学算法相关的问题。
共 8 节
第4章 数组相关问题
数组可谓大家最熟悉的数据结构了,我们甚至都不把它作为一种数据结构——因为几乎所有编程语言都有内置的数组类型,我们往往不自觉地在使用它。别看它结构简单,我们也不能小瞧它,涉及到数组的题目可谓千变万化、层出不穷。但是万变不离其宗,我们通过典型的例题帮助大家理解数组问题的套路和解法。 ...
共 11 节
第5章 链表相关的问题
链表可谓数组的亲兄弟,在笔试面试中,链表的题目不算多——因为它也算比较简单的数据结构。和数组一样,我们通常可能也不把链表作为一种数据结构。到那时我们同样不可轻视它,涉及到链表的题目大多不算太难,但是比较繁琐,我们在本章就和大家聊聊链表最基本的增、删、查、改等操作。 ...
共 12 节
第6章 堆栈相关问题
堆栈是一种简单的数据结构。我们在日常生活中洗碗后叠在一起,就是一个天然堆栈的体现。计算机中的堆栈就是日常生活中这些例子的抽象,本章我们会总结探讨堆栈相关的问题。
共 8 节
第7章 队列相关问题
队列是先进先出的结构。日常生活中我们就会排队,计算机中的队列就是日恒生活中排队的抽象。本章我们用过例题来认识、理解队列并学习显示、隐式队列的应用
共 12 节
第8章 分治的特例——二分查找
二分查找是计算机科学中的一个常见且重要的算法。它基于的思想是判断一个给定的候选解是不是一个问题的真正的解比找到问题的一个真正的解容易。所以计算机也不是高高在上、万能的。我们要相信,如果我们不知道问题的解,则计算机通常也不知道。所以我们帮助计算机来“猜”一个解,再来判断这个解是否合适来调整我们的才想。...
共 8 节
第9章 递归与分治
我们在解决一个大问题的时候,通常也会把它切分为小问题,来一个一个解决。这是因为小问题往往比大问题更容易解决。这就是分而治之,各个击破的思想。本章,我们来聊聊如何通过计算机算法实现这个简单朴素的思想。同时,在计算中解决小问题的模式通常以相同或相似的形式出现,从而就出现了递归。递归不神秘,分治很简单,...
共 10 节
第10章 图相关算法
图论起源于著名数学家欧拉所研究的“七桥问题”,也就是通常我们说的一笔画问题。计算机算法面试中的图论问题,通常也不会太难,但是它涉及到的知识点比较多,例如二叉树、广度优先、深度优先等等。图论问题的特点就是综合性强,这也是在笔试面试中,命题人钟爱图论问题的元素之一吧。我们将在本章中聊聊面试中的图论问题—...
共 15 节
第11章 贪心算法
贪心算法是最简单、最直截了当的算法。比如我们学过的最小生成树的Prim和Krusal算法,以及最段路的dijkstra算法都是贪心算法的经典例子。贪心算法有着简单、优美的魅力。而贪心算法的难点在于证明,在本章中我们和大家聊聊贪心算法的经典应用,并对部分问题给出理论或者感性上的证明。 ...
共 7 节
第12章 位运算
位运算是计算机所特有的操作,因为计算机只认识0和1,所以它们天然地“善于”位运算操作。我们在本章和大家探讨下一些位元算在解决问题时的经应用,同时也为学习动态规划打下一些基础。因为有一类动态规划题目的状态表示需要使用位运算。 ...
共 7 节
第13章 动态规划
动态规划几乎是笔试和面试的必考题,可谓重中之重, 不少人可能对其望而生畏。本章我们通过一些题目,对动态规划的基本思想做一些总结,形成一些解动态规划题目的“套路”,从而让大家轻松应对这类题目。
共 16 节
第14章 杂题-那些你想不到的题
有些题目很难归类,但是又真实存在,它需要我们综合所学的知识点并灵活运用。所谓“戏法人人会变,各有巧妙不同”,大家学到的知识点都是类似的,但是要达到灵活运用、融会贯通,还需假以时日,勤学苦练。本章我们通过一些典型的例题,帮助大家梳理知识点,同时讨论一些有趣的的题目。 ...
共 8 节
第15章 必备软技能-防止思路上的盲点
程序员不仅仅是低头写码,还要与人沟通。虽然我们总说”show me the code“,但是代码并不是我们交流的唯一手段。更何况,我们在实现代码之前,通常需要简单和别人交流下思路,以防止思路上的盲点,另外我们还有很多的设计文档、代码注释需要完成,这些无疑需要我们有良好的沟通能力。面试中也一样,面试官也是人,他通...
共 2 节