File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ // A Dynamic Programming based solution for 0-1 Knapsack problem
2+
3+ public class Knapsack
4+ {
5+
6+ private static int knapSack (int W , int wt [], int val [], int n )
7+ {
8+ int i , w ;
9+ int rv [][] = new int [n +1 ][W +1 ]; //rv means return value
10+
11+ // Build table rv[][] in bottom up manner
12+ for (i = 0 ; i <= n ; i ++)
13+ {
14+ for (w = 0 ; w <= W ; w ++)
15+ {
16+ if (i ==0 || w ==0 )
17+ rv [i ][w ] = 0 ;
18+ else if (wt [i -1 ] <= w )
19+ rv [i ][w ] = Math .max (val [i -1 ] + rv [i -1 ][w -wt [i -1 ]], rv [i -1 ][w ]);
20+ else
21+ rv [i ][w ] = rv [i -1 ][w ];
22+ }
23+ }
24+
25+ return rv [n ][W ];
26+ }
27+
28+
29+ // Driver program to test above function
30+ public static void main (String args [])
31+ {
32+ int val [] = new int []{50 , 100 , 130 };
33+ int wt [] = new int []{10 , 20 , 40 };
34+ int W = 50 ;
35+ int n = val .length ;
36+ System .out .println (knapSack (W , wt , val , n ));
37+ }
38+ }
You can’t perform that action at this time.
0 commit comments