【发布时间】:2021-12-30 15:07:23
【问题描述】:
我正在尝试解决 Leetcode Combinations Sum 问题,并且我已经使用递归方法。在这里粘贴我的方法
def combinationSum(candidates,target):
N = len(candidates)
FinRes = []
SubRes = []
def Helper(Ind,candidates,target,FinRes,SubRes):
if(Ind == len(candidates)):
if(target == 0):
FinRes.append(SubRes.copy()) # Adding SubRes To FinRes
return
if(candidates[Ind] <= target):
SubRes.append(candidates[Ind])
Helper(Ind,candidates,target-candidates[Ind],FinRes,SubRes)
SubRes.pop()
Helper(Ind+1,candidates,target,FinRes,SubRes)
Helper(0,candidates,target,FinRes,SubRes)
return FinRes
candidates = [2,3,6,7]
target = 7
print(combinationSum(candidates,target))
在我的递归函数Helper 中,当target==0 时,我将我的SubRes 附加到FinRes。我试过FinRes.append(SubRes),但它没有附加到FinRes(它实际上是稍后附加和删除),后来我做了SubRes.copy()它工作正常。那么我怎样才能添加SubRes 和append。
【问题讨论】:
-
不@DanielHao 我正在学习递归。所以想这样做。
-
好的。在帖子中尝试下一种方法。
标签: python python-3.x algorithm recursion combinations