//每个元素可以重复选择,完全背包问题
//顺序不同的序列被视作不同的组合。--->先遍历背包容量,再遍历物品
//凑齐目标数--->装满背包问题(dp[j]+=dp[j-w[i]])-->需要初始化第一个值为1(dp[0]=1)
var combinationSum4 = function(nums, target) {
//长度取决于j
let dp=new Array(target+1).fill(0)
dp[0]=1
let len=nums.length
for(let j=0;j<=target;j++){ //遍历背包容量
for(let i=0;i<len;i++){ //遍历下标
if(j>=nums[i]){ //装得下
dp[j]+=dp[j-nums[i]]
}
}
}
return dp[target]
};