func combinationSum4(nums []int, target int) int {
f := make([]int, target + 1)
n := len(nums)
f[0] = 1
for i := 0; i <= target; i ++ {
for j := 0; j < n; j ++ {
if nums[j] <= i {
f[i] += f[i - nums[j]];
}
}
}
return f[target]
}
二刷
func combinationSum4(nums []int, target int) int {
n := len(nums)
f := make([]int, target + 1)
f[0] = 1
for v := 1; v <= target; v ++ {
for i := 0; i < n; i ++ {
if nums[i] <= v {
f[v] += f[v - nums[i]]
}
}
}
return f[target]
}