找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:
返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。

提示:
2 <= k <= 91 <= n <= 60今天的题和昨天的很相似,区别如下:
相应的修改如下:
代码如下:
- class Solution(object):
- def combinationSum3(self, k, n):
- """
- :type k: int
- :type n: int
- :rtype: List[List[int]]
- """
- ans = []
-
- def makeTree(k, target, path, ans, begin, count):
- if target < 0 or count > k:
- return
- elif target == 0 and len(path) == k:
- ans.append(path)
- return
- else:
- for i in range(begin, 10):
- makeTree(k, target - i, path + [i], ans, i+1, count + 1)
-
- makeTree(k, n, [], ans, 1, 0)
- return ans
提交通过:
