class Solution:
def combinationSum2(self, candidates, target):
"""
:type candidates: List[int]
:type target: int
:rtype: List[List[int]]
"""
self.reslist = []
fl = [0]*len(candidates)
candidates = sorted(candidates)
self.dfs(candidates,[],target,fl,0)
return self.reslist
def dfs(self,candidates,sublist,target,flaglist,last):
if target == 0:
self.reslist.append(sublist[:])
if target < candidates[0]:
return
l = None
for m in range(len(candidates)):
n = candidates[m]
if n > target:
return
if n < last or flaglist[m] == 1 or l == n:
continue
sublist.append(n)
flaglist[m] = 1
self.dfs(candidates,sublist,target-n,flaglist,n)
flaglist[m] = 0
l = n
sublist.pop()
40. 组合总和 II
最新推荐文章于 2024-07-04 21:39:57 发布