题目大意
https://leetcode.com/problems/combination-sum-iv/
给你一个数组和一个target值,求数组中的组合的和等于target,121和112,211视为不同的。
题目分析
动态规划不仅可以解决最优值问题,可以解决很多计数类问题。想解决目标值为target的问题要借助于目标值比target小的子问题。结果数组为dp,所求的为dp[target]。dp[i] = dp[i] + dp[i - x]
,x为nums数组中的值,意思是想解决dp[i],如果dp[i-x]已经解决了,再把x值加入这一组合中就成为一个解了。注意下,dp[0]
为1,因为这是起始情况,比如数组只有一个元素1,target也为1,dp[0]显然得为1的情况下,结果dp[1]
才能为1。
代码
|
|
时间复杂度O(target * num.length)