0
点赞
收藏
分享

微信扫一扫

组合总和 力扣

爱读书的歌者 2022-05-01 阅读 95

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。

candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 

对于给定的输入,保证和为 target 的不同组合数少于 150 个。

from typing import List


class Solution:
    def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:

        def dfs(candidates, begin, size, path, res, target):
            if target < 0:
                return
            if target == 0:
                res.append(path)
                return

            for index in range(begin, size):
                dfs(candidates, index, size, path + [candidates[index]], res, target - candidates[index])

        size = len(candidates)
        if size == 0:
            return []
        path = []
        res = []
        dfs(candidates, 0, size, path, res, target)
        return res
from typing import List

class Solution:
    def combinationSum(self,candidates:List[int],target:int) ->List[List[i
        def dfs(candidates,begin,size,path,res,
            if target<0:
                return 
            if target ==0:
                res.append(path)
                return 
            for index in range(begin,size):
                dfs(candidates,index,size,path+
        
        size =len(candidates)
        if size ==0:
            return []
        path =[]
        res =[]
        dfs(candidates,0,size,path,res,target)
        return res
举报

相关推荐

0 条评论