栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

力扣第39题:组合总和(java回溯)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣第39题:组合总和(java回溯)

 一、题目内容

二、题目分析

        这道题目的示例[2,3,6,7],可以用下图方式遍历的理解。

        如图,首先有四种选择方法,可以在2,3,6,7中任选一个,然后将它加到临时列表中去,之后每层都有四种选择方法(因为可重复选择),每次选择后我们用sum+=选择的值,当我们一直选择到sum等于target的时候,说明我们找到了一种情况满足条件,那我们就将这一临时列表加到结果列表里去,如果sum>target,则说明当前的值不应该选择,直接return即可。只有当sum

class Solution {
    public List> combinationSum(int[] candidates, int target) {
        List> list =new ArrayList<> ();
        Arrays.sort(candidates);
        backtrack(list,new ArrayList<>(),candidates,target,0);
        return list;
    }
    public void backtrack(List> list,List templist,int []candidates,int target,int index)
    {
        if(sum(templist)==target)
        {
            list.add(new ArrayList<>(templist));
            return;
        }
        if(sum(templist)>target)
            return;
        for(int i=index;i l)
    {
        int s=0;
        for(int i=0;i 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327907.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号