package DynamicProgramming;// A Dynamic Programming based solution// for 0-1 Knapsack problempublic class DyanamicProgrammingKnapsack {static int max(int a, int b) {return (a > b) ? a : b;}// Returns the maximum value that can// be put in a knapsack of capacity Wstatic int knapSack(int W, int wt[], int val[], int n) {int i, w;int K[][] = new int[n + 1][W + 1];// Build table K[][] in bottom up mannerfor (i = 0; i <= n; i++) {for (w = 0; w <= W; w++) {if (i == 0 || w == 0) K[i][w] = 0;else if (wt[i - 1] <= w) K[i][w] = max(val[i - 1] + K[i - 1][w - wt[i - 1]], K[i - 1][w]);else K[i][w] = K[i - 1][w];}}return K[n][W];}// Driver codepublic static void main(String args[]) {int val[] = new int[] {60, 100, 120};int wt[] = new int[] {10, 20, 30};int W = 50;int n = val.length;System.out.println(knapSack(W, wt, val, n));}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。