![](https://img-blog.csdnimg.cn/a2943459da484a4195ccc49a9b0e0f27.png)
![](https://img-blog.csdnimg.cn/6fdf8d365dbf4ff3b70afa19c8602e3f.png)
Java程序:
public class CompletePack {// 完全背包
public static void main(String[] args) {
int[] weight = {1, 3, 4};
int[] value = {15, 20, 30};
int bagWeight = 4;
testCompletePack(weight,value,bagWeight);
}
// public static void testCompletePack(int[] weight,int[] value,int bagWeight) {//先遍历物品,再遍历背包
// int[] dp=new int[bagWeight+1];
// for (int i = 0; i < weight.length; i++) {
// for (int j = weight[i]; j <= bagWeight; j++) {
// dp[j]=Math.max(dp[j],dp[j-weight[i]]+value[i]);
// }
// }
// for(int maxValue:dp){
// System.out.println(maxValue+" ");
// }
// }
public static void testCompletePack(int[] weight,int[] value,int bagWeight) {//先遍历背包,再遍历物品
int[] dp=new int[bagWeight+1];
for (int i = 1; i <= bagWeight; i++) {
for (int j = 0; j < weight.length; j++) {
if(i>=weight[j]){
dp[i]=Math.max(dp[i],dp[i-weight[j]]+value[j]);
}
}
}
for(int maxValue:dp){
System.out.println(maxValue+" ");
}
}
}