Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.43 KB | None | 0 0
  1. public int knapsackdp(int[]w, int[]v, int W) {
  2.         int N = w.length;
  3.         int[][] path = new int[W+1][N];
  4.         int[] sol = new int[W+1];
  5.         for(int i = 1; i <= W; i++) {
  6.             for(int k = 0; k < N; k++) {
  7.                 if(i - w[k] >= 0 && v[k] + sol[i-w[k]] > sol[i]) {
  8.                     sol[i] = v[k] + sol[i-w[k]];
  9.                     path[i] = Arrays.copyOf(path[i-w[k]], N);
  10.                     path[i][k]++;
  11.                 }
  12.             }
  13.         }
  14.         System.out.println(Arrays.toString(path[W]));
  15.         return sol[W];
  16.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement