(下面的代码不是工作代码。只是为了表达想法) 我的目的是递归调用sumsubset(arr.remove(el),num,org),解析更新的arr。 但是,这会导致不必要的删除原始arr,这将导致错误。所以,我经常依赖复制模块,感觉有些尴尬。
有没有更好的方法在不使用复制模块的情况下解析更新的arr? 谢谢你回答我的第一个问题。
arr=[1, 1, 2, 4, 4, 4, 7, 9, 9, 13, 13, 13, 15, 15, 16, 16, 16, 19, 19, 20]
num=36
import copy
def sumsubset(arr,num,org):
for el in arr:
if el==org: return [el]
tmp=copy.copy(arr)
tmp.remove(el)
result=[el]+sumsubset(tmp,num-el,org)
return result
a=sumsubset(arr,36,36)