candidates = [2,3,5]
candidates.sort()
target = 8
ans = []
temp = []
start = 0
def backtracking(temp,candidates,remaining,start):
global ans
if remaining < 0:
return
elif remaining == 0:
if temp not in ans:
ans.append(temp)
print ans,"ans"
else:
i = start
print i,"st"
while i < len(candidates):
temp.append(candidates[i])
print i,"i"
backtracking(temp,candidates,remaining-candidates[i],i)
temp.pop(len(temp) - 1)
i += 1
backtracking(temp,candidates,target,start)
print ans因此,当我尝试打印我的列表ans时,我得到[[]] -我无法将temp列表附加到全局列表ans。如何做到这一点?
发布于 2018-06-25 23:27:17
您不能在Python中追加这样的列表。你可以像list = list1 + list2一样追加。因此,您需要编写ans = ans + temp来代替ans.append(temp)。
发布于 2019-05-13 13:53:34
使用ans.append(temp[:])代替ans.append(temp)是可行的。
但我还不知道为什么。
https://stackoverflow.com/questions/51026902
复制相似问题