题解 | #加起来和为目标值的组合(二)#

加起来和为目标值的组合(二)

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)

全部评论

相关推荐

醒工硬件:1学校那里把xxxxx学院去了,加了学院看着就不像本校 2简历实习和项目稍微精简一下。字太多,面试官看着累 3第一个实习格式和第二个实习不一样。建议换行 4项目描述太详细了,你快把原理图贴上来了。比如可以这样描述:使用yyyy芯片,使用xx拓扑,使用pwm控制频率与占空比,进行了了mos/电感/变压器选型,实现了xx功能 建议把技术栈和你做的较为有亮点的工作归纳出来 5熟悉正反激这个是真的吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务