【hot100-java】【组合总和】

embedded/2024/9/22 13:54:26/

R8-回溯篇

印象题,很基本的回溯

java">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;}//做出选择,更新targetstate.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.移除数组最后一个元素

java">state.remove(state.size()-1);

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

java">new ArrayList<>(state)

3.ret数组后面增加值

java">ret.add()

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

java">Arrays.sort(candidates);


http://www.ppmy.cn/embedded/115067.html

相关文章

未来视界,触手可及:bigmp4 引领 AI 视频处理新革命

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;技术已经渗透到我们生活的方方面面&#xff0c;从智能助手到自动驾驶&#xff0c;AI 正在改变着世界。而在视频处理领域&#xff0c;bigmp4 的横空出世&#xff0c;无疑为视频爱好者和专业人士带来了一场革命…

LabVIEW提高开发效率技巧----采用并行任务提高性能

在复杂的LabVIEW开发项目中&#xff0c;合理利用并行任务可以显著提高系统的整体性能和响应速度。并行编程是一种强大的技术手段&#xff0c;尤其适用于实时控制、数据采集以及多任务处理等场景。LabVIEW的数据流编程模型天然支持并行任务的执行&#xff0c;结合多核处理器的硬…

Python办公自动化案例(四):将Excel数据批量保存到Word表格中

案例:将excel数据批量保存到Word表格中 要将Excel数据批量保存到Word表格中,可以使用Python的openpyxl库来读取Excel文件,以及python-docx库来创建和编辑Word文档。以下是一段示例代码,以及代码解释和一些注意事项。 准备好的Excel数据: 1.安装所需库 首先,确保你已经…

/etc/sudoers文件中的哪些配置会影响系统安全?

/etc/sudoers 文件中的配置对系统安全有很大影响 用户权限配置&#xff1a;允许哪些用户使用 sudo 执行特权命令。如果配置不当&#xff0c;可能导致未经授权的用户获得管理员权限。 例如&#xff1a; root ALL(ALL:ALL) ALL %admin ALL(ALL) ALL %sudo ALL(ALL:ALL) ALL…

硬件工程师笔试面试——变压器

目录 9、变压器 9.1 基础 变压器原理图 变压器实物图 9.1.1 概念 9.1.2 变压器组成结构 9.1.3 变压器原理 9.1.4 变压器的类型 9.1.5 应用领域 9.2 相关问题 9.2.1 变压器的工作原理是什么? 9.2.2 如何选择合适的变压器类型? 9.2.3 变压器在实际应用中,如何进行…

【记录一下】jenkins的安装与部署教程

Jenkins的安装与部署过程可以根据不同的操作系统和环境有所不同&#xff0c;但大致的步骤是相似的。以下是一个基于Linux系统的Jenkins安装与部署的详细教程。 Jenkins安装与部署教程 1. 安装Java环境 Jenkins是基于Java开发的&#xff0c;因此在安装Jenkins之前&#xff0c…

基于mockito做单元测试

1.简介 配合断言使用(杜绝System.out)可重复执行不依赖环境不会对数据产生影响Spring的上下文环境不是必备的一般都配合mock类框架对数据库进行隔离 mock类使用场景&#xff1a; 要进行测试的方法存在外部依赖(DB,Redis,第三方接口),为了专注于对该方法的逻辑进行测试&#…

千益畅行:旅游卡免费服务,包含哪些内容?

​凭此卡可免费旅游&#xff0c;单卡支持2-6人同行&#xff0c;免费服务内容包含&#xff1a;酒店住宿、团餐、景区首道大门票、导游、大巴、旅游责任险、接送机等&#xff0c;目前支持全国40多条旅游线路&#xff0c;爱旅游的朋友们可以约起来&#xff01; #旅游卡服务#