Open youngyangyang04 opened 3 weeks ago
for (int i = 0; i < weight.length; i++) {
for (int j = weight[i]; j <= w; j++) {
dp[j] = Math.max(dp[j], dp[j - weight[i]] + value[i]);
}
}
for (int j = 0; j <= w; j++) {
for (int i = 0; i < weight.length; i++) {
if (j - weight[i] >= 0) {
dp[j] = Math.max(dp[j], dp[j - weight[i]] + value[i]);
}
}
}
https://www.programmercarl.com/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80%E5%AE%8C%E5%85%A8%E8%83%8C%E5%8C%85.html