概念
动态规划算法的基本步骤
a. 找出最优解的性质,并刻划其结构特征。
b. 递归地定义最优值。
c. 以自底向上的方式计算出最优值。
d. 根据计算最优值时得到的信息,构造最优解(可以省略)
01背包问题
https://www.bilibili.com/video/BV1K4411X766/?spm_id_from=333.788.recommend_more_video.-1
学习过程中发现我对表格的理解有一些问题,想明白以后问题就变得清晰了。可能有些小伙伴也有和我同样的疑惑,这里给大家分享一下:
表格a【i】【j】表示的是容量为j的背包装入前i个物品的最大价值。拿a【1】【3】和a【2】【3】举例,这里的a【2】【3】意思并不是在a【1】【3】的基础上考虑第2件物品,而应该理解为再拿一个空背包考虑前两件物品的情况。因此,如果空间不足以放入第2件,那么a【2】【3】=a【1】【3】;如果空间足够放入第2件,那么将背包容量减去第2件的容量,得j=3-3=0,而i=2-1等于1,找到a【1】【0】=0,那么物品2价值加上a【1】【0】得到总价值4,将4与a【1】【3】比较,取较大值即为a【2】【3】的值。
其他格子同理,如a【4】【8】,物品4价值6容量5,j=8-5=3,i=4-1=3,找到a【3】【3】值为4,6+4=10,10与a【3】【8】比较,10大,所以a【4】【8】=10。