Skip to content

动态规划

DP状态机、状态转移方程

一、从下面几个角度来进行讨论:

1、"DP状态机"、"状态转移方程"描述的是"原问题"和"子问题"之间的函数关系

2、所谓"状态",它描述的是问题的规模

3、DP table的定义

它一般记录问题的解

显然它的维度是由"状态"的维度决定的

4、选择

二、

一提到“动态规划”算法我首先想到的是二维数组,在我的印象中动态规划算法就是一个对二维数组进行填值的过程,这个数组作为它按照一定的计算方法能够计算出矩阵中每个位置的值,并且在计算后面值时会用到前面的值。

在课本的例子中,能够使用动态规划算法解决的问题都具有最优子结构性质,也就是问题的最优解包含其子问题的最优解(当我在用动态规划解决问题的时候,用数学公式描述出这种关系是解决这个问题的核心所在)注意这样的描述本来就包含递归的思想。动态规划算法所维护的二维数组m[i][j]值表示子问题i到j的最优值。

动态规划算法也是从底层到高层,从子问题到完全问题逐渐来解决问题的。

TODO

berkeley Chapter 6 Dynamic programming

素材

1、"wikipedia Recursion (computer science) # Recursive functions and algorithms"

LeetCode

LeetCode 322. 零钱兑换

LeetCode 518. 零钱兑换 II