最近面试经常被问到动态规划,所以自己做了一个总结,希望能进行深入的理解然后尝试能不能找到通用的解决手段.我觉得动态规划思想好理解,难的是怎么找出全部并且合理的子问题和出口. 我一般把问题分为两类,一类是有两个变化值,对应的我们要设一个二维数组记录(比如背包问题,每一步不仅物品发生变化,背包容量也改变):一类是一个变化值,对应的我们只需设置一个一维数组(比如只有一个变量改变的最值问题). 然后确定该问题的子问题,找出状态转移方程.这里有一个小技巧,一般都是从数组最后一个元素开始逐步向前递归(思考方…