相关的题目:
动态规划-背包问题
动态规划-背包问题(二)
动态规划-背包问题(三)
动态规划-Backpack VI
动态规划-背包问题 V
1 题目
给定N个正整数:A0,A1,…,An-1
一个正整数Target
求有多少中组合加起来是Target
每个Ai可以用多次
2 示例:
输入:nums = [1, 2, 4],Target = 4
输出:6 (1+1+1+1,2+2=4,1+1+2=4,2+1+1=4)
3 题解
该题和动态规划之换硬币的解题方法差不多,可以借鉴该题的解题思路去处理。
public class Solution {
/**
* @param nums: an integer array and all positive numbers
* @param target: An integer
* @return: An integer
*/
public int backPackV(int[] nums, int target) {
// write your code here
int n = nums.length;
int[] f = new int[target + 1];
f[0] = 1;
for (int i = 1; i <= target; i++) {
f[i] = 0;
for (int j = 0; j < nums.length; j++) {
if (i >= nums[j]) {
f[i] += f[i - nums[j]];
}
}
}
return f[target];
}
}