此路径包含 90 门课程
以下是学习路径 Coding Interview Prep 中的每门课程,按学习顺序排列。第一门免费。
面试最常考的 SQL 基础知识,前五分钟就能筛掉候选人。掌握 SQL 的定义、查询的执行方式,以及面试官期待您了解的术语。
复习 Python 基础知识,让您在面试中能够全神贯注于解决问题。本课程涵盖算法题中经常出现的内置数据类型、推导式和实用函数。学完后,您将能写出整洁、符合 Python 习惯且在面试时间压力下易于阅读的代码。
您可以向在线评测系统提交第一个解答,并查看评测结果
练习列投影、别名、计算表达式和 DISTINCT。涵盖容易让初级开发者出错的作用域规则。
学习如何在编写一行代码之前分析任意算法的效率。本课程通过可视化直觉和跨循环、递归及数据结构操作的示例,介绍大 O、大 Θ 和大 Ω 表示法。掌握复杂度分析是面试官考查的最重要技能。
您可以足够快速地读取并输出竞赛输入,避免因超时而失分
经典筛选面试陷阱:运算符优先级、BETWEEN 边界、IN 与 OR 的区别,以及模式匹配。了解为什么看似正确的筛选条件会返回错误的行。
数组是编程面试中最常见的数据结构。本课程从 Python 中必备的数组操作开始,深入讲解双指针模式;它能在数十道经典题中消除嵌套循环。学完后,您将能自信地解决两数之和、三数之和以及盛最多水的容器等变体问题。
您可以在编写代码前根据约束估算算法的运行时间
练习排序和分页面试题,包括稳定排序、多关键字排序,以及跨数据库获取前 N 行的方法。
字符串处理问题几乎出现在每一轮编程面试中。本课程涵盖 Python 丰富的字符串接口、用于子串搜索的滑动窗口技巧,以及异位词和排列检测。您还将学习何时可以接受 O(n²) 的蛮力方法,以及何时必须采用更高效的算法。
您可以扫描、构建并转换 Python 列表,以解决竞赛任务
在面试考察中掌握 COUNT、SUM、AVG、MIN、MAX 及其对 NULL 的处理方式。COUNT(*) 与 COUNT(列) 的区别是必考题。
从实现层面理解排序,能让您在面试中自信地讨论各种取舍。本课程使用 Python 从零实现冒泡排序、插入排序、归并排序和快速排序,分析每种算法的复杂度,并展示哪些现实场景更适合哪种方法。
您可以操作和检查字符串,以解决基于文本的问题
面试官最先询问的连接操作。建立清晰的理解模型,掌握 INNER JOIN 如何匹配行、如何因重复值产生倍增,以及 ON 谓词应放在哪里。
二分查找的能力远不止教科书中的定义。本课程涵盖经典实现,并将其扩展到旋转数组、未知长度列表,以及答案空间二分查找;后者搜索的是可能答案的范围,而不是数据结构。
您可以使用双指针技巧解决配对和子数组问题
外连接面试题:保留未匹配的行、查找缺失记录,以及面试官经常考察的反连接模式。
链表考查您在没有 Python 内置便利功能的情况下操作指针和分析内存的能力。本课程从 Node 类构建单向链表,然后解决经典面试问题:反转链表、检测环以及合并有序链表。
您可以使用前缀数组即时回答子数组和查询
掌握那些容易让候选人意外的连接:笛卡尔积、表与自身连接,以及判断问题真正需要哪种连接。
栈和队列是 DFS、BFS、表达式解析及撤销系统的基础。本课程使用 Python 列表和 collections.deque 构建这两种结构,然后解决有效括号、每日温度以及用栈实现队列等经典面试问题。
您可以按照自定义键排序,并利用顺序简化问题
分组是区分初级和中级开发者的面试环节。学习 GROUP BY 规则、HAVING 与 WHERE 的区别,以及非聚合列错误。
哈希表可以将 O(n) 的线性扫描转化为 O(1) 查找,是许多最优面试解法背后的秘密武器。本课程将讲解冲突处理、负载因子和 Python 字典的内部机制,然后运用哈希表解决两数之和、字母异位词分组、最长连续序列和 LRU 缓存设计问题。
您可以搜索有序数据,并在数值答案空间中进行二分查找
NULL 是 SQL 面试中产生错误答案的首要原因。掌握三值逻辑、NULL 安全比较和 COALESCE。
递归是树遍历、回溯和分治的基础。本课程将揭开调用栈如何随着每次递归调用不断增长和收缩的机制,建立编写正确递归函数的可靠三步框架,并使用显式栈将部分问题转换为迭代解法。
您可以使用哈希结构实现 O(1) 查找、计数和去重
掌握面试官常考的标量、行和表子查询。了解每种子查询可以出现在哪里,以及何时子查询是最简洁的答案。
二叉树出现在超过四分之一的 LeetCode 中等和困难题目中。本课程将构建 TreeNode 类,以递归和迭代两种方式实现全部四种遍历顺序,并解决包括最大深度、直径和最近公共祖先在内的路径问题。
您可以识别并证明适用于竞赛任务的简单贪心策略
学习每个外层行执行一次的子查询。识别、编写和改写相关子查询,是中级开发者面试的核心技能。
BST 将有序数组的排序特性与链表的动态插入结合起来。本课程将讲解 BST 的插入、搜索和删除操作,验证 BST 的正确性,并解决利用其中序遍历有序特性的题目,包括第 k 小元素和范围查询。
您可以将复杂的问题规则转换为正确的分步模拟
使用 WITH 子句编写清晰、可复用的查询逻辑。面试官希望您能将嵌套子查询重构为整洁的 CTE。
堆是流式中位数、前 k 个元素和 Dijkstra 算法的核心。本课程将解释堆的性质,使用数组从零实现最小堆,并使用 Python 的 heapq 模块解决出现频率最高的前 k 个元素、数据流中位数和 k 路合并问题。
您可以使用递归探索解空间,并剪枝排除无效分支
使用递归 WITH 遍历树和图。组织架构、物料清单和数字序列生成,都是高级面试中的经典问题。
图问题广泛出现在系统设计和算法面试中。本课程将使用邻接表和邻接矩阵表示图,然后结合已访问集合,运用 BFS 和 DFS 解决连通分量、岛屿数量、单词接龙和克隆图问题。
您可以判断何时暴力枚举符合约束,并高效地完成枚举
排名窗口函数是面试中考察最多的高级 SQL 主题。理解这三种排名函数在并列值上的不同结果。
动态规划令大多数候选人望而生畏,但它最终可以归结为两个容易识别的要素:重叠子问题和最优子结构。本课程将建立动态规划思维,介绍自顶向下的记忆化和自底向上的制表法,并以斐波那契数列、爬楼梯和零钱兑换作为经典入门问题。
您可以选择合适的线性结构,并将其用于经典模式
使用偏移和分桶窗口函数比较行,并将数据分配到不同层级。期间环比变化是分析师面试的必考问题。
许多面试中的动态规划问题都可以归结为一个存储子问题答案的一维数组。本课程将识别一维动态规划的关键模式——线性扫描、每一步进行决策以及滑动窗口动态规划——并将其应用于打家劫舍、乘积最大子数组、单词拆分和解码方法。
您可以使用不断扩展和收缩的窗口解决子数组与子串问题
使用窗口框架子句执行累计和滚动计算。ROWS 与 RANGE 框架的区别,是面试官重点考察的中级知识。
二维动态规划表用于建模状态依赖于两个独立索引的问题,例如比较两个序列或在网格中移动。本课程将解决不同路径、最小路径和、最长公共子序列和编辑距离问题,这四类题目是最常见的二维动态规划面试题。
您可以对区间排序并扫描,以合并区间、统计重叠和安排调度
使用窗口函数清晰解决两类高频面试问题:找出每个类别中的前 N 项,以及删除重复行。
回溯会系统地探索每个候选解,并在分支违反约束的瞬间将其放弃。本课程将讲解通用的回溯模板,并将其应用于子集、排列、组合总和、N 皇后和数独求解器问题——这些题目出现在各大科技公司的面试题库中。
您可以将 GCD、筛法和素性判断应用于数学密集型竞赛问题
每位候选人都会遇到的面试题:先求第二高薪资,再求第 N 高薪资,并处理面试官补充的各种边界情况。
贪心算法在每一步都做出局部最优选择,并在适用时得到全局最优结果。本课程将培养您判断贪心方法何时正确的直觉,通过交换论证证明其正确性,并将其应用于区间调度、跳跃游戏、任务调度和加油站问题。
您可以使用逆元和阶乘,在模数下计算较大的计数结果
正确合并结果集。掌握 UNION 与 UNION ALL、列兼容性规则,以及使用集合运算比较数据集。
分治法将问题拆分为相互独立的子问题,递归地解决每个子问题,再合并结果。本课程将超越归并排序,把这一范式应用于计算逆序对、寻找最近点对、多数元素(Boyer-Moore)和 Karatsuba 乘法算法。
您可以使用位运算技巧处理集合、掩码和常数时间操作
高级模式识别问题:找出连续区段及其间隙。这是 SQL 面试中体现高级水平的重要信号。
区间动态规划是一种强大的模式,其中子问题由一个范围的两个端点定义,可用于求解回文分割、矩阵链乘法和戳气球等问题的最优解。本课程将讲解通用的区间动态规划填表顺序,并完整解决四道经典问题。
您可以表示图,并使用广度优先搜索和深度优先搜索遍历图
解决连续登录日期、连胜记录等连续时段问题,以及 LeetCode 风格的连续三行问题。
背包问题系列是面试中最常见的动态规划范式之一。本课程将讲解 0/1 背包、完全背包、分割等和子集以及目标和,并展示每种变体如何调整递推关系和状态空间,以建模不同约束。
您可以使用合适的算法计算带权图中的最短路径
在长格式和宽格式之间重塑数据。条件聚合透视和反向逆透视,是报表面试中的常见问题。
最短路径思维广泛应用于网络路由、单词接龙和最低价航班问题。本课程将使用最小堆实现 Dijkstra 算法,使用 Bellman-Ford 处理负权边,并使用 Floyd-Warshall 计算所有点对之间的距离,同时讨论每种算法适用的场景。
练习面试中常见的日期计算、截断和字符串处理,同时了解不同数据库中的函数名称差异。
拓扑排序会对 DAG 进行排序,使每条边都指向前方,对于课程安排、构建系统和依赖解析至关重要。本课程将实现基于 BFS 的 Kahn 算法和基于 DFS 后序遍历的拓扑排序,然后介绍用于求强连通分量的 Kosaraju 算法。
您可以使用背包式二维 DP 对资源有限的选择进行建模
学习产品分析面试查询:构建用户队列、计算留存曲线,以及比较自连接和窗口函数方法。
字典树(前缀树)可以解决自动补全、拼写检查和 IP 路由问题,而这些问题并不适合用哈希表解决。本课程将构建支持插入和搜索的 TrieNode 类,将其扩展为前缀搜索和通配符匹配,并结合回溯将其应用于单词搜索 II。
您可以使用网格和字符串 DP 解决路径计数与编辑距离问题
掌握数据分析师面试中经常考察的事件漏斗转化和实验分析查询。
并查集(不相交集合并集)能够以近乎常数的时间执行连通性查询,是解决动态分组问题的简洁方案。本课程将实现按秩合并和路径压缩,然后使用 DSU 解决连通分量数量、冗余连接和账户合并问题。
您可以使用 DSU 合并集合,并构建最小生成树
阅读执行计划并解释查询变慢的原因,这是技术面试中区分高级候选人的关键。
利用整数的二进制表示,位运算可以在不使用额外空间的情况下,以 O(1) 或 O(n) 的时间解决某些问题。本课程将讲解 AND、OR、XOR、移位和位掩码,然后将其应用于只出现一次的数字、位计数、2 的幂和缺失数字问题。
您可以在对数时间内回答动态区间查询并执行更新
学习面试中的索引设计:哪些列应建立索引、复合索引的顺序、覆盖索引,以及索引何时会带来负面影响。
单调栈和双端队列在从左到右处理元素时维护有序不变量,从而以 O(n) 的时间解决原本需要 O(n²) 嵌套循环的问题。本课程将解决每日温度、柱状图中的最大矩形、滑动窗口最大值和接雨水问题。
您可以对 DAG 进行拓扑排序,并将图分解为强连通分量
并发面试题:ACID 保证、四种隔离级别,以及每种级别可以防止的异常。
许多高级职位的面试都包含 30–45 分钟的系统设计环节,您需要在白板上勾画出可扩展的架构。本课程将提供一套可重复使用的框架:明确需求、估算规模、设计数据模型和 API、选择存储引擎,并讨论一致性、可用性和延迟之间的权衡。
您可以使用 KMP、哈希和字典树快速匹配模式
数据库建模与完整模拟面试题合集。涵盖规范化、星型模式和端到端的问题解决。
这门收官课程将本学习路径中的所有模式整合为结构化的问题解决指南。您将学会在读题后的前 60 秒内判断适用的模式,在限时条件下练习,并像真实面试官一样应对有关复杂度和边界情况的追问。
您可以在竞赛压力下应用博弈论、折半搜索和调试流程
用 AI 练习,而不只是阅读
用 AI 工具和功能为你的学习加速
你的学习方式
- 01
互动课程
实时反馈的动手编程练习
- 02
AI 导师
遇到困难时立即获得 AI 帮助
- 03
内置编辑器
直接在浏览器中编写并运行代码
- 04
证书
完成课程后获得证书
相关学习路径
常见问题解答
Coding Interview Prep 课程免费吗?
免费。你可以免费开始 Coding Interview Prep 课程并完成它的所有互动课程。可选的 PRO 订阅解锁高级 AI 工具和可分享的证书。
学习 Coding Interview Prep 需要有先前的经验吗?
不需要。课程从基础开始,逐步进阶到更高难度的主题,所以即使你没有任何 Coding Interview Prep 基础也可以开始。
我在 CoddyKit 上怎样学习 Coding Interview Prep?
学以致用。简洁的互动课程将清晰的讲解与实时动手编程练习结合,24/7 AI 导师在你遇到困难时提供个性化帮助。
完成 Coding Interview Prep 后能获得证书吗?
可以。PRO 学员可以参加考试,获得 Coding Interview Prep 课程的可分享的完成证书,其中包含可验证的代码。
我能在手机上学习 Coding Interview Prep 吗?
可以。CoddyKit 支持网页版和原生 iOS、Android 应用,你可以在任何设备上学习 Coding Interview Prep,进度会自动同步。
CoddyKit PRO 的费用是多少?
Coding Interview Prep 的第一门课程免费。CoddyKit PRO 可解锁全部课程:每周 $5.90、每月 $7.90、每年 $29.90,或一次性支付 $69.99,即可终身使用且无需续费。
完成 Coding Interview Prep 需要多长时间?
Coding Interview Prep 包含 90 门课程和 360 节课。大多数课程需要约 5–10 分钟,因此整个路径大约需要 42 小时的实践学习,你可以按照自己的节奏进行。