Combination Sum
题目描述:
给定一个目标值,以及表示累加和数字的个数k。要求得到找到1-9中k个数为目标值的所有可能,要求结果中不存在重复值,且各个数字只能用一次。
例子:
给定k=3,target=7,则结果为[[1,2,4]];给定k=3,target=9,则结果为[[1,2,6],[1,3,5],[2,3,4]],见LeetCode216
解题思路:
首先已知我们只能用1-9的数,所以用过的数不能再次使用。这样相当于构建一棵树,新的节点的可能只能在上一个节点较大值中取。例如我们当前取值了5,则下一个节点的可能值只有6,7,8,9。基于以上事实,我们使用回溯的算法,在不断寻找的过程中,如果条件不满足则返回,如果满足题意则加入到结果中。
代码如下:
|
|