题解 | #加起来和为目标值的组合(二)#
加起来和为目标值的组合(二)
https://www.nowcoder.com/practice/75e6cd5b85ab41c6a7c43359a74e869a
class Solution:
def combinationSum2(self, num: List[int], target: int) -> List[List[int]]:
# write code here
num.sort()
n = len(num)
res, g = [], []
##递归求解
def get_s(n, num, target, g, res, begin):
if sum(g) == target:
res.append(g.copy())
for i in range(begin, n):
##剪枝处理
if i>begin and num[i]==num[i-1]:
continue
if sum(g) + num[i] <= target:
g.append(num[i])
get_s(n, num, target, g, res, i + 1)
#回溯
g.pop()
return res
return get_s(n, num, target, g, res, 0)