和上一个题很像,但是每个数字只能使用一次。
class Solution(object):
def combinationSum2(self, candidates, target):
self.result=[]
candidates.sort()
start=0
val=[]
self.backdate(candidates, target, start,val)
return self.result
def backdate(self,candidates,target,start,val):
for i in range(start,len(candidates)):
if target<0:
break
else:
val.append(candidates[i])
if target - candidates[i]==0:
if val not in self.result:
self.result.append(val[:])
self.backdate(candidates, target-candidates[i],i+1, val)
val.pop()
if(i < len(candidates)-1 & candidates[i]==candidates[i+1]):
break

本文介绍了一种基于回溯法的组合求和算法实现。该算法用于找出所有可能的组合,使得这些组合中的数字之和等于给定的目标值。特别地,文章强调了在寻找组合的过程中如何避免重复解,并且每个数字在每组组合中只能被使用一次。

1477

被折叠的 条评论
为什么被折叠?



