这门课解决什么问题

算法面试辅导课面向准备北美技术岗面试的求职者,核心场景是手撕代码轮次。无论是投递软件开发、机器学习、数据科学还是算法研究岗,笔试和现场面试都绕不开链表遍历、二叉树操作、二分查找、广度与深度优先搜索、动态规划这类经典题型。这门课把这些高频考点拆成独立模块,逐个讲清楚套路和边界条件,帮你在有限备考时间内把容易卡壳的递归、图遍历、双指针等难点啃下来,避免上了考场只能盯着题目发呆。

适合什么基础与建议学习顺序

课程默认你已经掌握一门编程语言的基本语法,能写循环和函数,但刷题经验不多,或者刷过一些却总在复杂边界上丢分。零基础直接听会吃力,建议先补完语法再来看。拿到资料后,建议先从二分法和双指针两块入手,这两类题型套路固定、容易上手,能帮你快速建立手感;接着看图与广度优先搜索,弄懂邻接表和邻接矩阵的存图方式;递归与深度优先搜索以及动态规划难度更高,放在后面结合真题反复推敲。每个模块不要只听讲解,看完一道题的思路后,先自己默写一遍代码,再对照资料里的写法查漏补缺。

学完能独立做什么

完整跟下来后,你应该能在拿到一道中等难度算法题时,较快判断它属于哪一类考点,套用对应模板写出可运行代码,并在面试官追问边界和复杂度时给出合理解释。具体来说,你能在数组上正确写出二分查找及其在答案集上的变体,能用同向、相向、背向双指针处理两数之和、区间合并等问题,能用广度优先搜索解决层序遍历和最短路径类题目,也能在递归与深度优先搜索中设计合理的回溯逻辑。这些能力覆盖了多数北美技术面试的核心考察范围,配合课后真题反复练习,足以让你独立应对常规笔试和现场面试环节。

课程目录

本课程针对人群:有编程语言语法基础,需要应对北美算法面试轮。 主要知识点:链表、二叉树、二分法、BFS 与 DFS、数据结构设计、双指针、动态规划、贪心等 #### MLE/SDE/DS/AS/RS版本-第1讲 二分法及应用 二分法是什么? 如何使用二分在数组上查找? 如何在答案集上进行二分? #### MLE/SDE/DS/AS/RS版本-第2讲 双指针 双指针分为哪几类? 同向双指针可以用于什么场景? 相向双指针可以用于什么场景? 背向双指针可以用于什么场景? 双指针在两个数组上怎么操作? #### MLE/SDE/DS/AS/RS版本-第3讲 图与BFS BFS 是什么? BFS 适用什么样的题型? 什么是图和树? 如何使用邻接表和邻接矩阵来存图? BFS 有什么特殊的题型需要额外注意? #### MLE/SDE/DS/AS/RS版本-第4讲 递归与 DFS(上):搜索类 DFS 递归的几大要素是什么? 如何使用递归完成搜索? 在递归中可能的剪枝有哪些? #### MLE/SDE/DS/AS/RS版本-第5讲 递归与 DFS(下):分治类 DFS 如何在树上进行分治? 有哪些一般问题可以使用分治法? 排序问题和分治法有什么关系? #### MLE/SDE/DS/AS/RS版本-第6讲 并查集 并查集是什么? 并查集与 BFS 孰优孰劣?分别适合使用在什么场景? 如何利用并查集来解决实际问题? #### MLE/SDE/DS/AS/RS版本-第7讲 图上的拓展算法 拓扑排序怎么实现? 什么是最短路? 最短路算法有哪些? #### Floyd、Dijsktra、SPFA 算法应该使用哪一个? 什么是生成树? 如何求最小生成树? #### MLE/SDE/DS/AS/RS版本-第8讲 数据结构设计 如何利用前缀和与差分设计区间和问题? 如何设计懒惰删除的数据结构? 如何基于双向链表设计数据结构? 其他常见的数据结构设计 #### MLE/SDE/DS/AS/RS版本-第9讲 动态规划(上):一个物品下动态规划 如何使用记忆化搜索加快搜索效率? 动态规划的四要素是什么?如何从题目中获取到有效信息? 如何求解与序列有关的动态规划问题? 如何求解与坐标有关的动态规划问题? 背包问题、完全背包问题、多重背包问题怎么解?他们有什么差别和共性? #### MLE/SDE/DS/AS/RS版本-第10讲 动态规划(下):两个物品下动态规划 子串和子序列有什么差别? 如何求解最长公共子串/子序列问题? 如何求解编辑距离问题? 如何求解字符串匹配类问题? #### MLE/SDE/DS/AS/RS版本-第11讲 单调栈与单调队列 单调栈是什么? 单调栈可以解决什么样的问题? 如何利用的单调的思想解决问题? 如何从单调栈的思想推导到单调队列? #### MLE/SDE/DS/AS/RS版本-第12讲 字典树 字典树是什么? 字典树在操作系统中有什么应用? 字典树和哈希表的优劣? 如何使用字典树优化实际问题?