Backpack V
public class Solution {
/**
* @param nums: an integer array and all positive numbers
* @param target: An integer
* @return: An integer
*/
public int backPackV(int[] A, int m) {
int n = A.length;
int i, j;
int[][] f = new int[n + 1][m + 1];
f[0][0] = 1;
for (i = 1; i <= m; ++i) {
f[0][i] = 0;
}
for (i = 1; i <= n; ++i) {
for (j = 0; j <= m; ++j) {
//not using A[i - 1]
f[i][j] = f[i - 1][j];
//using A[i - 1]
if (j >= A[i - 1]) {
f[i][j] += f[i - 1][j - A[i - 1]];
}
}
}
return f[n][m];
}
}
最后更新于
这有帮助吗?