有num个物品,总背包容量为Capacity, 求不超过背包总容量的前提下使得背包里的物品的价值达到最大的物品是哪些物品。
对于每个物品,只有两种选择,要么装要么不装进背包。
那么在考虑前 i 个物品时,在当前容量为 j 的条件下,如果这个物品的体积小于当前背包剩下体积,且装入此物品的价值比不装此物品的价值大,就装入此物品 ,设第 i 个物品的体积为 vol[ i ] ,价值 为 val [ i] ,result [ j ]表示容量为 j 时的价值,那么
result [ j ] = max{ result[ j ], result[ j - vol[ i ] ] + val[ i ]}, j>=vol[j]
如果 j < vol[ i ] ,说明当前的容量小于 当前物品的体积,肯放就是不放该物品了,那么在这个容量下的值就是不变的