文章目录
- 题目描述
- 题解思路
- 题解代码
- 题目链接
题目描述
题解思路
总和为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] = 1for 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/