- def solve(nums:list,num:int):
- num = sum(nums)-num
- if num%2 != 0:
- return 0
- target = int(num/2)
- def combinationSum2(candidates, target):
- def dfs(nums, target, start, visited, path, res):
- if target == 0:
- res.append(path + [])
- return
- for i in range(start, len(nums)):
- if target - nums[i] < 0:
- return 0
- if i not in visited:
- visited.add(i)
- path.append(nums[i])
- dfs(nums, target - nums[i], i + 1, visited, path, res)
- path.pop()
- visited.discard(i)
- candidates.sort()
- res = []
- visited = set([])
- dfs(candidates, target, 0, visited, [], res)
- return res
- return len(combinationSum2(nums, target))
- print(solve([1,3,4,5,1,2,3,4], 3))
复制代码 |