递归(Recursion)

递归是函数直接或间接调用自身来分解子问题的技巧,常与分治、回溯结合;理解基线条件与调用栈是正确使用的前提。

Stanford 课程

何时使用与尾递归

通用方法与回溯

回溯蓝图: Java · Python

动态规划(Dynamic Programming)

在你的面试中或许没有任何动态规划的问题,但能够知道一个题目可以使用动态规划来解决是很重要的。这一部分会有点困难,每个可以用动态规划解决的问题都必须先定义出递推关系,要推导出来可能会有点棘手。我建议先阅读和学习足够多的动态规划的例子,以便对解决 DP 问题的一般模式有个扎实的理解。

视频

耶鲁课程笔记

Coursera 课程