Java 解读《重现》中背包的伪码

Java 解读《重现》中背包的伪码,java,knapsack-problem,Java,Knapsack Problem,我的问题是,在这种情况下N是什么?在我的变量程序中,我有weight、value、maxweight和LinkedList。有人能帮我吗?感谢N是输入数组/列表中的元素数。 第一个递归调用是背包(0,k),每个递归调用递增i,直到到达N,递归结束 你从哪里得到这段代码应该已经解释过了。不幸的是,我从哪里得到的这段代码没有准确的解释。仅此注释://计算索引为i或更低的对象的大小为//k的背包问题的最大值。它甚至不是一段可用的Java代码。而且,在发布之前正确格式化代码有那么难吗?不是,这是一个伪代

我的问题是,在这种情况下N是什么?在我的变量程序中,我有weight、value、maxweight和LinkedList。有人能帮我吗?感谢

N是输入数组/列表中的元素数。
第一个递归调用是背包(0,k),每个递归调用递增
i
,直到到达
N
,递归结束

你从哪里得到这段代码应该已经解释过了。不幸的是,我从哪里得到的这段代码没有准确的解释。仅此注释://计算索引为i或更低的对象的大小为//k的背包问题的最大值。它甚至不是一段可用的Java代码。而且,在发布之前正确格式化代码有那么难吗?不是,这是一个伪代码,我正试图使用LinkedList、ArrayLista和b实现java?那是什么?@JeryozDimitar
a
是不包含第i个元素的
背包算法的结果,
b
是包含第i个元素的
背包算法的结果。二者中的最大值为总结果。
int knapsack(i, k){

    if(i=N){

        val= 0; //end of recrusive

        return val;
    }

    if (w[i]>k) // no space anymore

        val= knapsack(i+1, k); 

    else {

        a = knapsack(i+1, k) // i don't take with

        b = knapsack(i+1, k-w[i]) + v[i]; //i take with

        val= max(a,b); 

    } 

    return val;
}