首页 > 编程语言 >【hot100-java】【组合总和】

【hot100-java】【组合总和】

时间:2024-09-21 11:55:14浏览次数:11  
标签:java target int ret start state hot100 candidates 总和

R8-回溯篇

印象题,很基本的回溯

class Solution {
    void backtrack(List<Integer> state,int target,int[] choices,int start,List<List<Integer>> ret){
        //子集和等于target,记录解
        if (target==0){
            ret.add(new ArrayList<>(state));
            return;
        }
        //遍历所有选择
        //剪枝2:从start开始遍历,避免生成重复子集
        for (int i=start;i<choices.length;i++){
            //剪枝1:若子集和超过target,直接结束循环
            if (target-choices[i]<0){
                break;
            }
            //做出选择,更新target
            state.add(choices[i]);
            //进行下一轮选择
            backtrack(state,target-choices[i],choices,i,ret);
            //回退:撤销选择,恢复到之前的状态
            state.remove(state.size()-1);
        }
    }
    public List<List<Integer>> combinationSum(int[] candidates, int target) {
        //状态子集
        List<Integer>state=new ArrayList<>();
        Arrays.sort(candidates);
        int start=0;
        //结果子集
        List<List<Integer>> ret=new ArrayList<>();
        backtrack(state,target,candidates,start,ret);
        return ret;
    }
}

 

PS:

java语法 

1.移除数组最后一个元素

state.remove(state.size()-1);

2.使用数组接受传入的参数值

new ArrayList<>(state)

3.ret数组后面增加值

ret.add()

4.数组排序,例如candidates是一个数组

Arrays.sort(candidates);

标签:java,target,int,ret,start,state,hot100,candidates,总和
From: https://blog.csdn.net/m0_73629042/article/details/142413121

相关文章

  • niubility!即使JavaBean没有默认无参构造器,Fastjson也可以反序列化。- - - - 阿里Fastj
    niubility!即使JavaBean没有默认无参构造器,fastjson也可以反序列化。看下面示例代码,User这个JavaBean不包含默认无参构造器。执行这段代码不仅不会像Jackson那样抛出“没有无参构造器”的异常,还能正常反序列化。@TestpublicvoidtestFastjsonCoDec(){StringjsonString=......
  • java+vue计算机毕设电视设备租借系统【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着数字媒体的迅猛发展,电视设备在各类活动、展览、会议及日常娱乐中扮演着不可或缺的角色。然而,高昂的购置成本和维护费用使得许多中小型企业和个人......
  • java+vue计算机毕设大学生心理健康系统【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着社会的快速发展与竞争的日益激烈,大学生作为社会未来的栋梁,面临着学业压力、就业挑战、人际关系等多重压力,其心理健康问题日益凸显。近年来,高校中......
  • java+vue计算机毕设电影网站【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,网络娱乐已成为人们日常生活中不可或缺的一部分,其中电影作为最具影响力和广泛受众的文化产品之一,其在线观看与交易需求日益......
  • java+vue计算机毕设大学生心理健康咨询系统【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在当今社会快速发展的背景下,大学生作为社会的重要群体,面临着前所未有的学业压力、就业竞争、人际关系处理等多重挑战。这些压力若得不到有效疏导与应......
  • 【2025】java+springboot电影推荐系统(源码+文档+调试+答疑)
    ......
  • JavaScript 基础 - 第20天_Node.js入门
    文章目录Day01_Node.js入门提前安装软件目录学习目标01.什么是Node.js目标讲解小结02.fs模块-读写文件目标讲解小结03.path模块-路径处理目标讲解小结04.案例-压缩前端html目标讲解小结05.案例-压缩前端JS目标讲解小结06.认识URL中的端口号目标讲解小结07.http模......
  • java+vue计算机毕设电动车智能充电服务平台【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着全球对环境保护意识的增强及能源结构的转型,电动车作为新能源汽车的代表,其普及率正迅速提升。然而,电动车的快速发展也带来了充电基础设施不足、充......
  • java+vue计算机毕设电影网站【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,网络娱乐已成为人们日常生活中不可或缺的一部分,其中电影作为最具影响力和广泛受众的文化产品之一,其在线观看需求日益增长。......
  • java+vue计算机毕设大学新生入学app【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和智能手机的普及,高等教育领域正经历着前所未有的数字化变革。大学新生作为校园生活的初体验者,面临着环境适应、信息获取、生......