Knapsack algorithm
unknown
c_cpp
4 years ago
510 B
15
Indexable
int knapsack(int totalWeight, int weight[], int value[], int item) {
int k[item+1][totalWeight+1];
for(int i = 0; i <= item; i++) {
for(int j = 0; j <= totalWeight; j++) {
if(i == 0 || j == 0) {
k[i][j] = 0;
} else if(weight[i-1] <= j) {
k[i][j] = max(value[i-1] + k[i-1][j-weight[i-1]], k[i-1][j]);
} else {
k[i][j] = k[i-1][j];
}
}
}
return k[item][totalWeight];
}Editor is loading...