编辑代码

class Main {
	public static void main(String[] args) {
      int [] a={1,1,2,4};
      int [] b={100,300,300,400};
	int c=knapsack(a,b,2);
    System.out.print(c);
	}

    
    public static int knapsack(int[] weight, int[] value, int m) {  
        int n = weight.length;  
        int[][] dp = new int[n + 1][m + 1];  
        for (int i = 1; i <= n; i++) {  
            for (int j = 1; j <= m; j++) {  
                if (weight[i - 1] <= j) {  
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - weight[i - 1]] + value[i - 1]);  
                } else {  
                    dp[i][j] = dp[i - 1][j];  
                }  
            }  
        }  
        return dp[n][m];  
    }  

}