Backpack3-Complete
Example
Note
给定 n 种具有大小 A[i] 和价值 V[i] 的物品(每个物品可以取用无限次)和一个大小为 m 的一个背包, 你可以放入背包里的最大价值是多少?
注意事项:你不能将物品分成小块, 选择的项目的总大小应小于或等于 m。Code
public class Solution {
public int backPackIII(int[] A, int[] V, int m) {
int n = A.length;
int[] f = new int[m + 1];
for (int i = 0; i < n; ++i) {
for (int k = 1; k * A[i] <= m; ++k) {
for (int j = m; j >= A[i]; --j) {
f[j] = Math.max(f[j], f[j - A[i]] + V[i]);
}
}
}
return f[m];
}
}Last updated