最近遇到這么一個題目,給定一個數字集合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)