说动态规划之前先简单说一下回溯法:总问题分为小问题,小问题里面套着小问题,分步骤一步步解决。
个人感觉重点在于递归的调用。说道递归,递归过程的设计是很重要的。首先考虑递归的是什么。这是核心。其次,递归的结束条件是什么:可以一上来就设置递归的条件做为终止return,再满足条件的继续,最后不满足调整return就可以了。
剑指offer中给出了两道题都是关于矩形方阵的。首先要考虑的就是如何输入。这是基础。
面试题12、面试题13 是经典的回溯法,其中的递归思想很值得学习。
接下来介绍动态规划:动态规划占据了很大的分量,每一次看都有不一样的收获。
经典题:面试题14:剪绳子:
1)首先找到数学表达式 ,这是重要的前提,否则没法解!!!!
2)从上往下分析问题,从下往上解决问题。
3)特殊情况需要考虑。尤其是一开始绳子长度的处理与实际长度的。存在数组中的一开始值是最优值,这一点刚开始看的时候有点懵圈。