File tree 1 file changed +38
-0
lines changed
1 file changed +38
-0
lines changed 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