动态规划——01背包问题理解
问题内容:有i种类型的物品,它们的重量和价值分别是weight[i]和value[i],每种物品数量只有一个。现在,有一个容量为j的背包,如何装取物品,使得背包价值最大?
解题思路:典型的动态规划问题。
1.确定dp数组含义:dp【i】【j】任取【0~i】的物品放进背包的容量为j时,其最大价值为dp【i】【j】。
2.递推公式:不放物品i时的背包价值——dp【i】【j】=dp【i-1】【j】;放物品i时的背包价值——dp【i】【j】=max( dp【i-1】【j】,dp【i-1】【j-weight[i]】+value[i])