最近遇到这么一个题目,给定一个数字集合a,和一个目标值t,找到集合a中所有和为t的数字组合,一个数字,可以多次出现。(集合和t都为正整数)
例子:
输入[2,3,6,7],t=7
输出:[[7],[2,2,3]]
#!/usr/bin/env python
candidate=[2,5,1]
list=[]
result=[]
def search(candidates,target,list):
if (sum(list)==target): //回溯点
list.sort()
if list not in result:
result.append(list)
return
if (sum(list)>target):
return
for i in range(len(candidate)):
search(candidates,target,list+[candidates[i]])
search(candidate,7,list)
print(result)