DFS和BFS

当题目看不出任何规律,既不能用分治,贪心,也不能用动规时,这时候万能方法——搜索, 就派上用场了。搜索分为广搜BFS和深搜DFS。解决多阶段最优化问题。

广搜里面又有普通广搜,双向广搜,A*搜索等。

深搜里面又有普通深搜,回溯法等。

动态规划

分治法是将问题分解为两个互不相交的子问题。如二叉树的左右子树遍历等;

动态规划应用于子问题存在重叠的情况,如最大子数组和,最长公共子序列等;动态规划就是在递归中记录了子问题的解,逐步重构最优解。

动态规划一般由两种方法来实现,一种为自顶向下的备忘录方式,用递归实现,一种为自底向上的方式,用迭代实现。

,