如果你正在准备技术面试,大概率遇到过这种场面:题目读懂了,思路也大概有,但一动笔就卡在边界条件上;或者刷了几十道题,换个问法又认不出来。这门《算法面试通关 40 讲》针对的不是"从零学算法",而是把面试里反复出现的那几类问题拆开,讲清楚它们各自的解题套路和容易踩的坑。
先确认一下你是不是它的目标读者
这门课更适合已经能写基本代码、但算法面试心里没底的人。具体来说,如果你符合下面任意一条,看它的收益会比较直接:
- 知道数组、链表、二叉树是什么,但被问到"最近公共祖先""滑动窗口最大值"时想不出通解;
- 动态规划、贪心、二分查找这几个词听着耳熟,真做题时判断不出该用哪个;
- 刷题靠背答案,题目稍微变形就失效,需要一套能迁移的判断依据;
- 面试时能说出思路,但复杂度分析说不清楚,或者写出来跑不过边界用例。
如果你连基本的递归、指针操作都还不熟,建议先把语言基础打牢再回来,直接跟这门课会有点吃力。
它把内容分成了"理论"和"面试题"两层
从课程结构能看出一个明显的设计:先讲原理,再上具体题目。理论部分单独成讲,比如数组与链表、贪心算法、二分查找,这些不是泛泛介绍概念,而是把每种结构或方法的适用场景和判定信号讲清楚——什么时候该想到二分,贪心的局部最优在什么条件下才能推到全局最优。面试题部分则挑的是高频且能代表一类思路的题目,比如滑动窗口中的最大值、二叉树与二叉搜索树的最近公共祖先、岛屿的个数与朋友圈这类连通性问题。理论打底、题目落地,两者是配套的,不建议跳着只看题解。
几个值得重点对待的模块
链表与数组
看起来最基础,但面试里翻车率不低。指针操作、边界处理、双指针的移动条件是这里的重点,很多"想得对写不对"的问题都出在这一层。
二叉树与二叉搜索树
最近公共祖先这类题的关键,是区分普通二叉树和二叉搜索树的解法差异。搞清楚"利用了什么性质",比记住某段代码更有用。
贪心与动态规划
这两个是最容易被混淆的。课程单独给了贪心的理论讲解,目的就是让你先能判断"这道题贪心能不能成立",而不是一上来就硬套 DP。判断错了,后面推导全是白费。
二分查找
二分的难点从来不是"有序数组找目标",而是各种变形下的区间开闭和终止条件。这块值得反复看,面试里写错一次基本就凉了。
看完应该能回答的问题
用这几个问题自查,比"看完感觉懂了"靠谱得多:
- 滑动窗口求最大值,为什么单调队列能保持在 O(n),普通队列不行在哪?
- 同一道最近公共祖先,普通二叉树和 BST 的解法差在哪一步,BST 的性质省掉了什么?
- 拿到一道新题,你凭什么判断它该用贪心而不是动态规划?反例怎么构造?
- 二分查找的循环条件和区间收缩,你能一次写对吗?
- 连通性问题(岛屿、朋友圈)的本质是什么,为什么可以用并查集或 DFS 两种方式解?
如果这些问题你能不看答案讲清楚,这门课的核心目的就达到了。讲不清楚的,回去对应那几讲重新过一遍,别急着往前赶。
怎么用这份资料
建议按"理论 → 对应面试题 → 自己手写一遍"的顺序走,不要只看视频。算法这东西看懂和写出是两回事,尤其是链表指针、二分边界、递归终止条件这三处最容易以为会了其实不会。每道题看完之后,关掉讲解,自己在编辑器里从空文件开始写,跑通边界用例,再对照讲解看差在哪。40 讲不算多,但每讲都值得配一道自己动手的题,消化比刷量重要。
【极客时间】算法面试通关 40 讲
系统学习算法,轻松应对面试
编辑点评
深入浅出讲解算法原理,结合实战案例,助你快速提升算法能力。
⭐ 编辑推荐
精选40个热门算法面试题,涵盖数据结构、动态规划、贪心算法等多个领域。
系统学习算法原理,掌握解题技巧,轻松应对面试。
课程亮点
课程目录
【极客时间】算法面试通关 40 讲必看.png [493.5 KB] 05丨理论讲解:数组&链表.mp4 [21.3 MB] 12丨面试题:返回滑动窗口中的最大值.mp4 [223.2 MB] 19丨面试题:二叉树&二叉搜索树的最近公共祖先.mp4 [240.5 MB] 24丨理论讲解:贪心算法.mp4 [22.0 MB] 34丨理论讲解:二分查找.mp4 [42.5 MB] 54丨面试题:岛屿的个数&朋友圈(下).mp4 [148.9 MB] 23丨面试题:求众数.mp4 [225.4 MB] 48丨面试题:股票买卖系列.mp4 [961.2 MB] 38丨面试题:二维网格中的单词搜索问题.mp4 [232.5 MB] 59丨FAQ答疑&面试中切题四件套.mp4 [76.7 MB] 29丨面试题:二叉树的最大和最小深度.mp4 [164.7 MB] 08丨面试题:判断括号字符串是否有效.mp4 [166.8 MB] 06丨面试题:反转一个单链表&判断链表是否有环.mp4 [325.5 MB] 33丨面试题:数独问题.mp4 [354.7 MB] 42丨面试题:N皇后问题的另一种解法.mp4 [504.4 MB] 49丨面试题:最长上升子序列.mp4 [499.1 MB] 41丨面试题:2的幂次方问题&比特位计数问题.mp4 [177.4 MB] 36丨理论讲解:字典树.mp4 [57.0 MB] 51丨面试题:编辑距离.mp4 [427.7 MB] 09丨面试题:用队列实现栈&用栈实现队列.mp4 [106.5 MB] 25丨面试题:买卖股票的最佳时机.mp4 [215.4 MB] 03丨如何计算算法的复杂度.mp4 [100.1 MB] 30丨面试题:生成有效括号组合.mp4 [200.0 MB] 17丨理论讲解:树&二叉树&二叉搜索树.mp4 [88.9 MB] 01丨合格程序员的第一步:算法与数据结构.mp4 [316.5 MB] 15丨面试题:两数之和.mp4 [93.8 MB] 14丨面试题:有效的字母异位词.mp4 [137.4 MB] 62丨最后的一些经验分享.mp4 [350.3 MB] 04丨如何通过LeetCode来进行算法题目练习.mp4 [136.2 MB] 35丨面试题:实现一个求解平方根的函数.mp4 [292.5 MB] 11丨面试题:返回数据流中的第K大元素.mp4 [189.9 MB] 32丨面试题:N皇后问题.mp4 [309.4 MB] 55丨理论讲解: LRU Cache.mp4 [164.7 MB] 28丨面试题:二叉树层次遍历.mp4 [220.1 MB] 56丨面试题:设计和实现一个LRU Cache缓存机制.mp4 [61.2 MB] 37丨面试题:实现一个字典树.mp4 [62.3 MB] 47丨面试题:乘积最大子序列.mp4 [435.2 MB] 22丨面试题:Pow(x,n).mp4 [159.3 MB] 02丨如何事半功倍地学习算法与数据结构.mp4 [229.4 MB] 57丨理论讲解:布隆过滤器.mp4 [102.4 MB] 18丨面试题:验证二叉搜索树.mp4 [192.5 MB] 52丨理论讲解:并查集.mp4 [124.3 MB] 61丨白板实战番外篇:斐波拉契数列.mp4 [156.2 MB] 39丨理论讲解:位运算.mp4 [53.5 MB] 20丨理论讲解:二叉树遍历.mp4 [36.9 MB] 60丨回到起点:斐波拉契数列.mp4 [210.2 MB] 07丨理论讲解:堆栈&队列.mp4 [27.3 MB] 45丨面试题:爬楼梯.mp4 [247.2 MB] 27丨理论讲解:深度优先搜索.mp4 [53.0 MB] 53丨面试题:岛屿的个数&朋友圈(上).mp4 [358.4 MB] 13丨理论讲解:哈希表.mp4 [77.9 MB] 26丨理论讲解:广度优先搜索.mp4 [41.2 MB] 40丨面试题:统计位1的个数.mp4 [150.7 MB] 58丨课程重点回顾.mp4 [106.4 MB] 50丨面试题:零钱兑换.mp4 [210.0 MB] 44丨理论理解:动态规划(下).mp4 [149.1 MB] 46丨面试题:三角形的最小路径和.mp4 [349.6 MB] 21丨理论讲解:递归&分治.mp4 [69.9 MB] 10丨理论讲解:优先队列.mp4 [58.5 MB] 16丨面试题:三数之和.mp4 [196.4 MB] 43丨理论理解:动态规划(上).mp4 [63.7 MB] 31丨理论讲解:剪枝.mp4 [205.1 MB]
适合人群
- 算法初学者
- 面试求职者
- 算法爱好者
学习收获
祝您学习愉快!
学有所成,前程似锦!






