背包问题

1.01背包问题

背包问题

背包问题

空间优化:

背包问题

这里解释一下j的取值必须要从capacity到0。

在第i=x-1轮循环中已经确定了dp的所有值,现在进行第i=x轮循环时,需要取上一轮循环确定的dp数组的值来确定本轮循环的dp值。

背包问题类似于背包问题

背包问题类似于背包问题

 

这里还需要解释一下

背包问题

而不是

背包问题

这是因为在进行第i=x轮的时候,dp[j]此轮没有已经被赋值,所以依然使用的是上一轮i=x-1时候的dp[j]了。

2.完全背包问题

背包问题

空间优化:

背包问题这里一句01背包中的解释可以很容易得出这个结论。

3.多重背包问题

思路一:

背包问题

空间优化:

背包问题

思路二:把多件相同物品看作单独的一件件物品,这可以使用01背包问题进行求解,在此不在赘述。