当前位置:首页 > Web开发 > 正文

candidates中的数字可以无限制重复被选取

2024-03-31 Web开发

给定一个无反复元素的数组 candidates 和一个方针数 target ,,找出 candidates 中所有可以使数字和为 target 的组合。

candidates 中的数字可以无限制反复被拔取。

说明:

所有数字(包孕 target)都是正整数。
解集不能包罗反复的组合。 
示例 1:

输入: candidates = [2,3,6,7], target = 7,
所求解集为:
[
[7],
[2,2,3]
]
示例 2:

输入: candidates = [2,3,5], target = 8,
所求解集为:
[
  [2,2,2,2],
  [2,3,3],
  [3,5]
]

来源:力扣(LeetCode)

python3

class Solution:

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

        def searchSum(candidates,target):

            res=[]

            for i in range(len(candidates)):

                val = candidates[i]

                if val <target:

                    ls=searchSum(candidates[i:],target-val)

                    if ls!=[]:

                        for ele in ls:

                            ele.append(val)

                    res=res+ls

                elif val==target:

                    res=res+[[val]]

            return res


        return searchSum(candidates,target) 

PHP-组合总和

标签:

原文地点:https://www.cnblogs.com/corvus/p/12094297.html

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/33096.html