public static void main(String[] args) {
int r = 5;
int[] v= {6,10,12};//物品的价值
int[] w = {1,2,3};//物品的重量
//构造这个二维数组,其实这个二维数组就是之前图中所画的那个数组
int[][]dp = new int[4][6];
int n = v.length;//物品的数量
for(int i= 0;i<dp.length;i++ ){//给dp一个初始值
for(int j = 0;j<dp[0].length;j++){
dp[i][j]=0;
}
}
//循环物品的数量
for(int i = 1;i<=n;i++){
//循环背包的容量
for(int j = 1;j<=r;j++){
if(w[i-1]<=j){
dp[i][j]=Math.max((v[i-1]+dp[i-1][j-w[i-1]]), dp[i-1][j]);
}else{
dp[i][j]=dp[i-1][j];
}
}
}
for(int i= 0;i<dp.length;i++ ){//打印出dp的结果
for(int j = 0;j<dp[0].length;j++){
System.out.print(dp[i][j]+" ");
}
System.out.println();
}
}