原题链接:377. 组合总和 Ⅳ
代码展示:
class Solution {
// 完全背包问题 ,每个物品可以取很多次
public int combinationSum4(int[] nums, int target) {
int[] dp = new int[target+1];
dp[0] = 1;
for(int j = 0;j <= target; j++){ // 排列强调顺序的话一般是先遍历背包然后才是物品
for(int i = 0; i < nums.length; i++){
if(j - nums[i] >= 0){
dp[j] += dp[j - nums[i]]; // 组合求和一般是这个公式
}
}
}
return dp[target];
}
}
结果: