Tag
Array\Backtracking
Difficulty
Medium
Description
Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.
Example 1:
Input: k = 3, n = 7
Output:
[[1,2,4]]
Example 2:
Input: k = 3, n = 9
Output:
[[1,2,6], [1,3,5], [2,3,4]]
Code
class Solution(object):
def DFS(self,tmp,sum,count,level):
if sum== and count==:
return Solution.ret.append(tmp[:])
elif sum< or count<:
return
for i in range(level,):
tmp.append(i)
self.DFS(tmp,sum-i,count-,i+)
tmp.remove(tmp[-])
def combinationSum3(self, k, n):
"""
:type k: int
:type n: int
:rtype: List[List[int]]
"""
Solution.ret=[]
tmp=[]
if k< or n< or k>n:
return Solution.ret
self.DFS(tmp,n,k,)
return Solution.ret