在recrusive

时间:2017-07-04 01:09:26

标签: java knapsack-problem

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;
} 

我的问题是,在这种情况下N是多少?在我的变量程序中,我有权重,值,最大权重和LinkedList。有人可以帮帮我吗?感谢

1 个答案:

答案 0 :(得分:0)

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