https://leetcode.com/problems/combination-sum-iv/
给一个无重复的数组,找出所有和为给定值的组合。每个数可重复取
dp[i] = sum(dp[i - nums[j]])。相当于将i拆分成i - nums[j]和nums[j],nums[j]只有一个。
public class Solution {
public int combinationSum4(int[] nums, int target) {
int[] dp = new int[target + 1];
dp[0] = 1;
for (int i = 1; i <= target; i++) {
for (int j = 0; j < nums.length; j++) {
if (i - nums[j] >= 0) {
dp[i] += dp[i - nums[j]];
}
}
}
return dp[target];
}
}