编辑代码

package com.company;

public class Knapsack {
    public static void main(String[] args) {
        int []w={0,2,3,4,5};
        int []v={0,3,4,5,8};
        int sWeight=8;
        int [][] dp=new int[w.length][sWeight+1];
        for (int i = 0; i <w.length ; i++) {
            for (int j = 0; j <=sWeight; j++) {
                if(i==0||j==0)
                    dp[i][j]=0;
            }
        }
        System.out.println(Knapsack(dp,w,v,sWeight));
        int i = 0;int j = 0;
        for (i=0; i <dp.length ; i++) {
            for (j=0; j <dp[i].length ; j++) {
                System.out.print(dp[i][j]+"\t");

            }
            if (j==dp[i].length)
            System.out.print("\n");

        }
    }
    public static  boolean Knapsack(int [][]dp,int []w,int []v,int sW){
        for (int i = 1; i <w.length ; i++) {
            for (int j = 1; j <sW+1; j++) {
                if(j>=w[i]){
                    dp[i][j]=Math.max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
                }else{
                    dp[i][j]=dp[i-1][j];
                }

            }
        }



        return true;
    }
}