146.组合总和

java 复制代码
class Solution {
    List<List<Integer>> res=new ArrayList<>();
    List<Integer> li=new ArrayList<>();
    public List<List<Integer>> combinationSum(int[] candidates, int target) {
        solut(candidates,target,0,0);
        return res;
    }
    void solut(int[] candidates, int target,int index,int listSum){
        if(listSum==target){
            res.add(new ArrayList<>(li));
            return;
        }
        for(int i=index;i<candidates.length&&listSum<=target;i++){
            li.add(candidates[i]);
            listSum+=candidates[i];
            solut(candidates,target,i,listSum);
            listSum-=li.get(li.size()-1);
            li.remove(li.size()-1);
        }
    }
}
python 复制代码
class Solution(object):
    def combinationSum(self, candidates, target):
        res=[]
        li=[]
        def solut(candidates,target,index,listSum):
            if listSum>target:
                return
            if listSum==target:
                res.append(li[:])
                return
            for i in range(index,len(candidates)):
                li.append(candidates[i])
                listSum+=candidates[i]
                solut(candidates,target,i,listSum)
                listSum-=li.pop()
        solut(candidates,target,0,0)
        return res
相关推荐
xiaolyuh1231 分钟前
Arthas修改类(如加日志)的实现原理
java
栗子叶5 分钟前
Java对象创建的过程
java·开发语言·jvm
GIS之路8 分钟前
GDAL 实现矢量裁剪
前端·python·信息可视化
零小陈上(shouhou6668889)9 分钟前
K-近邻算法 - lazy learning的代表
算法·近邻算法
有一个好名字15 分钟前
力扣-从字符串中移除星号
java·算法·leetcode
IT=>小脑虎15 分钟前
Python零基础衔接进阶知识点【详解版】
开发语言·人工智能·python
智航GIS17 分钟前
10.6 Scrapy:Python 网页爬取框架
python·scrapy·信息可视化
萧瑟其中~19 分钟前
二分算法模版——基础二分查找,左边界查找与右边界查找(Leetcode的二分查找、在排序数组中查找元素的第一个位置和最后一个位置)
数据结构·算法·leetcode
码上就好ovo20 分钟前
Atcoder Beginnner Contest 440
算法