Untitled

 avatar
unknown
java
3 years ago
1.5 kB
2
Indexable
public class MyClass {
    public static void main(String args[]) {
      int[] weights = {1};
      int[] values = {3};
      knapsack(weights, values, 2);
    }
    
    static void knapsack(int[] weights, int[] values, int bound) {
        System.out.println("1");
        if(weights.length != values.length || bound <= 0) {
            System.out.println("2 - end");
            return;
        }
        System.out.println("3");
        int objects = weights.length;
        int[][] r = new int[objects + 1][bound + 1];
        for(int i = objects - 1; i>=0; i--) {
            System.out.println("4");
            for(int j = 1; j <= bound; j++) {
                System.out.println("5");
                System.out.println("6");
                if(weights[i] <= j) {
                    System.out.println("7");
                    int valWithI = values[i] + r[i+1][j-weights[i]];
                    int valWithoutI = r[i+1][j];
                    System.out.println("8");
                    if(valWithI > valWithoutI) {
                        System.out.println("9");
                        r[i][j] = valWithI;
                    } else {
                        System.out.println("10");
                        r[i][j] = valWithoutI;
                    }
                } else {
                    System.out.println("11");
                    r[i][j] = r[i+1][j];
                }
            }
        }
        System.out.println("12 - e");
        return;
    }
}
Editor is loading...