HERE 배낭 문제에 대한 재귀 솔루션이 있지만 이해할 수는 없습니다. 왜 W에 대한 수표가 없습니까? W (남은 몸무게)가 0보다 낮 으면 반환하지 않겠습니까? W가 이미 0보다 작은 특정 재귀 호출에서 앞으로 나아갈 시점은 무엇입니까?자바 배낭에 대한 재귀 솔루션
// Returns the maximum value that can be put in a knapsack of capacity W
int knapSack(int W, int wt[], int val[], int n)
{
// Base Case
if (n == 0 || W == 0)
return 0;
// If weight of the nth item is more than Knapsack capacity W, then
// this item cannot be included in the optimal solution
if (wt[n-1] > W)
return knapSack(W, wt, val, n-1);
// Return the maximum of two cases: (1) nth item included (2) not included
else return max(val[n-1] + knapSack(W-wt[n-1], wt, val, n-1),
knapSack(W, wt, val, n-1)
);
}