文章目录
- 题目描述
- 题解思路
- 题解代码
- 题目链接
题目描述
题解思路
总和为target的元素组合个数 可以由 总和为target - nums[j]的元素组合个数 转换而来,其中j为nums所有元素的下标
而总和target - nums[j]的元素组合个数 可以由 总和为target - nums[j] - nums[k]的元素组合个数 转换而来,其中k为nums所有元素的下标
依次类推,转换成我们已知的条件 总和为0的元素组合个数为1
这是一种从结果出发,不断转换到我们已知条件的一种操作,通过这题,希望大家能够有所感悟
题解代码
func combinationSum4(nums []int, target int) int {
f := make([]int, target + 1)
f[0] = 1
for i := 1; i <= target; i++ {
for _, num := range nums {
if i >= num {
f[i] += f[i - num]
}
}
}
return f[target]
}
题目链接
https://leetcode.cn/problems/combination-sum-iv/description/