基本概念:
0-1 背包问题(0-1 Knapsack Problem)是经典的动态规划问题之一,常用于解决资源分配的最优化问题。
有俩种题解:二维数组,一维数组。
题解(二维数组):
首先初始化dp数组
dp数组的含义是任意[0,i]的物品放入背包容量为j的最大价值。
当不放物品的时候:dp[i][j]=dp[i-1][j]
当放入物品时:dp[i][j]=dp[i-1][j-weight[i]]+value[i]
另一种题解(一维数组):
首先初始化dp数组
dp数组的含义是背包容量为j,所背物品的最大价值d[j]。
当不放物品的时候:dp[j]=dp[j]
当放入物品时:dp[j]=dp[j-weight[i]]+value[i]