面试不仅是写对代码,更是沟通与严谨性的双重考核

很多求职者认为算法面试就是对着屏幕把题AC,但现实中,面试官更看重你的解题思路是否清晰、边界条件考虑是否周全。这门课开篇并不急于刷题,而是花大量篇幅拆解「算法面试到底是什么」。它会纠正一个常见误区:仅仅给出正确答案是不够的,你还需要能够解释清楚为什么这样做,以及在复杂场景下如何权衡时间与空间。

对于零基础或基础薄弱的同学,这一步至关重要。它帮你建立起面试时的“工程师思维”,让你明白大厂考察算法的初衷是筛选具备逻辑严谨性和问题分解能力的人,而非单纯的背诵能手。课程会教你如何在面试中通过有效的提问澄清需求,以及如何在没有完美解法时展示你的分析过程。

以复杂度分析为基石,系统性攻克高频数据模型

本课程的核心优势在于其扎实的理论铺垫。在正式进入题目之前,它用整整一章的篇幅深入讲解时间复杂度与空间复杂度,包括大O表示法、递归复杂度分析以及均摊复杂度等概念。很多候选人输在面试上,不是因为写不出代码,而是因为无法准确评估自己代码的性能瓶颈。这部分内容能帮你建立对数据规模的直观感觉,这是进阶高级算法的必要前提。

在理论之后,课程按照经典的数据结构和算法模型进行分类讲解,重点覆盖数组、查找表(哈希)、二分查找等高频考点。例如,通过“对撞指针”解决有序数组的两数之和,利用“滑动窗口”处理连续子数组问题,以及“三路划分”在处理颜色分类问题中的应用。这种分类方式不是罗列题目,而是提炼出每类问题的通用解法模式,让你遇到变种题时也能触类旁通。

实战路径建议与学习资源配合

建议学习者按照以下顺序配合资料练习:首先必须完整观看第1章和第2章,不要因为觉得枯燥而跳过,这是建立正确面试观和复杂度意识的基石。随后,重点精读第3章关于数组的操作,特别是二分查找的正确写法、双指针技巧以及滑动窗口的标准模板。这些是LeetCode中最常见也最基础的模型,掌握它们能解决约一半的中级难度题目。

学完这部分后,你可以独立应对大多数公司的一轮机考或现场编码面试。建议在看完每个专题的视频讲解后,立即去LeetCode对应标签下选取2-3道中等难度题目进行手动调试,重点练习如何在不看答案的情况下,从零构建出无Bug的代码框架,并能够口头复述你的复杂度分析过程。

课程目录

第1章 算法面试到底是什么鬼? 试看 5 节 | 66分钟 1-1 算法面试不仅仅是正确的回答问题 (19:37).mp4
 1-2 算法面试只是面试的一部分 (14:51).mp4
 1-3 如何准备算法面试 (17:38).mp4
 1-4 如何回答算法面试问题 (13:40).mp4
 1-5 大厂面试为什么总考算法?.mp4
 第2章 面试中的复杂度分析 7 节 | 108分钟 2-1 究竟什么是大O(Big O) (19:52).mp4
 2-2 对数据规模有一个概念 (11:26).mp4
 2-3 简单的复杂度分析 (19:20).mp4
 2-4 亲自试验自己算法的时间复杂度 (14:53).mp4
 2-5 递归算法的复杂度分析 (14:46).mp4
 2-6 均摊时间复杂度分析(Amortized Time Analysis) (15:16).mp4
 2-7 避免复杂度的震荡 (11:25).mp4
 第3章 数组中的问题其实最常见 8 节 | 129分钟 3-1 从二分查找法看如何写出正确的程序 (15:27).mp4
 3-2 改变变量定义,依然可以写出正确的算法 (12:06).mp4
 3-3 在LeetCode上解决第一个问题 Move Zeros (13:27).mp4
 3-4 即使简单的问题,也有很多优化的思路 (15:30).mp4
 3-5 三路快排partition思路的应用 Sort Color (22:26).mp4
 3-6 对撞指针 Two Sum II - Input Array is Sorted (19:44).mp4
 3-7 滑动窗口 Minimum Size Subarray Sum (14:09).mp4
 3-8 在滑动窗口中做记录 Longest Substring Without Repeating Characters (15:20).mp4
 第4章 查找表相关问题 8 节 | 111分钟 4-1 set的使用 Intersection of Two Arrays (11:12).mp4
 4-2 map的使用 Intersection of Two Arrays II (13:05).mp4
 4-3 set和map不同底层实现的区别 (19:00).mp4
 4-4 使用查找表的经典问题 Two Sum (16:56).mp4
 4-5 灵活选择键值 4Sum II (13:25).mp4
 4-6 灵活选择键值 Number of Boomerangs (14:45).mp4
 4-7 查找表和滑动窗口 Contain Duplicate II (11:20).mp4
 4-8 二分搜索树底层实现的顺序性 Contain Duplicate III (10:50).mp4
 第5章 在链表中穿针引线 6 节 | 88分钟 5-1 链表,在节点间穿针引线 Reverse Linked List (15:44).mp4
 5-2 测试你的链表程序 (16:26).mp4
 5-3 设立链表的虚拟头结点 Remove Linked List Elements (17:08).mp4
 5-4 复杂的穿针引线 Swap Nodes in Pairs (13:30).mp4
 5-5 不仅仅是穿针引线 Delete Node in a Linked List (07:29).mp4
 5-6 链表与双指针 Remove Nth Node Form End of List (16:49).mp4
 第6章 栈,队列,优先队列 8 节 | 111分钟 6-1 栈的基础应用 Valid Parentheses (16:10).mp4
 6-2 栈和递归的紧密关系 Binary Tree Preorder, Inorder and Postorder Traversal (16:03).mp4
 6-3 运用栈模拟递归 (19:33).mp4
 6-4 队列的典型应用 Binary Tree Level Order Traversal (10:26).mp4
 6-5 BFS和图的最短路径 Perfect Squares (21:20).mp4
 6-6 优先队列 (11:09).mp4
 6-7 优先队列相关的算法问题 Top K Frequent Elements (15:37).mp4
 6-8 两种关于 topK 问题求解思路的套路.mp4
 第7章 二叉树和递归 7 节 | 83分钟 7-1 二叉树天然的递归结构 (15:58).mp4
 7-2 一个简单的二叉树问题引发的血案 Invert Binary Tree (09:08).mp4
 7-3 不会翻转二叉树的大神.mp4
 7-4 注意递归的终止条件 Path Sum (12:04).mp4
 7-5 定义递归问题 Binary Tree Path (13:34).mp4
 7-6 稍复杂的递归逻辑 Path Sum III (14:11).mp4
 7-7 二分搜索树中的问题 Lowest Common Ancestor of a Binary Search Tree (17:46).mp4
 第8章 递归和回溯法 8 节 | 156分钟 8-1 树形问题 Letter Combinations of a Phone Number (18:09).mp4
 8-2 什么是回溯 (18:16).mp4
 8-3 排列问题 Permutations (19:02).mp4
 8-4 组合问题 Combinations (14:27).mp4
 8-5 回溯法解决组合问题的优化 (17:29).mp4
 8-6 二维平面上的回溯法 Word Search (21:45).mp4
 8-7 floodfill算法,一类经典问题 Number of Islands- (21:27).mp4
 8-8 回溯法是经典人工智能的基础 N Queens (25:17).mp4
 第9章 动态规划基础 

10 节 | 214分钟 9-1 什么是动态规划 (20:27).mp4
 9-2 第一个动态规划问题 Climbing Stairs (14:02).mp4
 9-3 发现重叠子问题 Integer Break (25:10).mp4
 9-4 状态的定义和状态转移 House Robber (27:19).mp4
 9-5 0-1背包问题 (32:37).mp4
 9-6 0-1背包问题的优化和变种 (20:18).mp4
 9-7 面试中的0-1背包问题 Partition Equal Subset Sum (27:34).mp4
 9-8 LIS问题 Longest Increasing Subsequence (25:12).mp4
 9-9 LCS,最短路,求动态规划的具体解以及更多 (21:00).mp4
 9-10 动态规划的经典问题.mp4
 第10章 贪心算法 3 节 | 46分钟 10-1 贪心基础 Assign Cookies (12:12).mp4
 10-2 贪心算法与动态规划的关系 Non-overlapping Intervals (17:58).mp4
 10-3 贪心选择性质的证明 (15:19).mp4
 第11章 课程结语 2 节 | 3分钟 11-1 结语 (02:45).mp4
 11-2 更多经典面试问题.mp4