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。有人可以帮帮我吗?感谢
答案 0 :(得分:0)
N是输入数组/列表中的元素数。
第一个递归调用是knapsack(0,k)
,每个递归调用递增i
,直到它达到N
并且递归结束。