leetcode39 组合总和

news/2024/11/29 11:34:16/文章来源:https://www.cnblogs.com/vastjoy/p/18576239

leetcode39 组合总和

image-20241129112802700

思路:

这题也是用回溯,但是考虑到不能重复,所以用一个currentNum记录当前遍历到哪了,按照大小顺序遍历防止重复就行。

class Solution {//11:10-11:18public void dfs(int[] candidates,List<List<Integer>> ans,int currentNum,List<Integer> list,int sum,int target){if (sum==target){ans.add(new ArrayList<>(list));}if(sum>target){return;}if (currentNum>candidates.length){return;}for (int i = currentNum; i < candidates.length; i++) {int num=candidates[i];list.add(num);dfs(candidates,ans,i,list,sum+num,target);list.remove(list.size()-1);}}public List<List<Integer>> combinationSum(int[] candidates, int target) {List<List<Integer>> ans=new ArrayList<>();dfs(candidates,ans,0,new ArrayList<>(),0,target);return ans;}
}

如果不用currentNum的话,就是遍历所有的组合了(带顺序的)。

class Solution {//11:10-11:18public void dfs(int[] candidates,List<List<Integer>> ans,List<Integer> list,int sum,int target){if (sum==target){ans.add(new ArrayList<>(list));}if(sum>target){return;}for (int i = 0; i < candidates.length; i++) {int num=candidates[i];list.add(num);dfs(candidates,ans,list,sum+num,target);list.remove(list.size()-1);}}public List<List<Integer>> combinationSum(int[] candidates, int target) {List<List<Integer>> ans=new ArrayList<>();dfs(candidates,ans,new ArrayList<>(),0,target);return ans;}
}

image-20241129113020147

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/843350.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hhdb数据库介绍(9-27)

计算节点参数说明 ndbSqlAddr & ndbSqlUser & ndbSqlPass 参数说明:Property Value参数值 ndbSqlAddr是否可见 是参数说明 NDB SQL端IP地址默认值 localhost:3329Reload是否生效 否Property Value参数值 ndbSqlUser是否可见 是参数说明 NDB SQL前端用户名默认值 rootR…

09C++选择结构(3)

1、求3个整数中最小值; 2、3个数排序; 3、随机函数rand(); 4、if语句的应用; 5、bug与debug一、求3个整数中最小值 题目:输入三个整数,表示梨的重量,输出最小的数。 方法1:经过三次两两比较,得出最小值。 a<=b && a<=c min=ab<=c && b<=a…

hhdb数据库介绍(9-26)

计算节点参数说明 masterSourceInitWaitTimeout 参数说明:Property Value参数值 masterSourceInitWaitTimeout是否可见 否参数说明 启动时数据节点中主存储节点初始化超时时间默认值 300最小值 0最大值 600Reload是否生效 是参数作用: 启动时,主存储节点在首次初始化失败后,…

[TSDB] OpenGemini wal文件与tssp文件的用途与关系

前言 openGemini是一款面向物联网、车联网、工业互联网、运维监控等领域的开源分布式时序数据库。 在openGemini中,WAL(Write-Ahead Logging)文件和TSSP(Time Series Storage Protocol)文件扮演着重要的角色,以下是关于它们的用途及关系的详细解释: WAL文件 用途WAL文件…

hhdb数据库介绍(9-24)

计算节点参数说明 failoverAutoresetslave 参数说明:Property Value参数值 failoverAutoresetslave是否可见 是参数说明 故障切换时,是否自动重置主从复制关系默认值 falseReload是否生效 否参数设置: <property name="failoverAutoresetslave">false</p…

“4个应用场景”以图搜图与实物比对,赋能机械制造智能化升级

背景 随着制造业和工业生产的不断发展,机械设计和加工过程中的图纸与实物比对成为生产质量管控的重要环节。然而,传统手动比对方式耗时费力,且易出现误差。思通数科凭借自主研发的大模型技术,为用户提供了一套高效、智能的以图搜图与实物比对解决方案,大幅提升了机械设计和…

校园防欺凌ai语音监控系统

校园防欺凌ai语音监控系统核心优势在于其先进的音频识别算法,校园防欺凌ai语音监控系统能够识别出关键词如侮辱、恐吓、求救等敏感语言,并能够区分正常的交流和潜在的欺凌行为。系统通过安装在校园各关键区域的麦克风捕捉声音信号,这些信号会被实时传输到中央处理单元。在这…

hhdb数据库介绍(9-18)

SQL语法支持 计算节点语法特殊功能 默认分片规则建表 在使用关系集群数据库时,需要先将表的分片规则信息配置好之后才能创建表。实际使用过程中,用户可能对关系集群数据库及分片规则不了解,这就需要一种能直接过渡到HHDB Server的方案,该方案能根据逻辑库关联的分片节点数量…

Windows Cmd查询端口号对应的进程及关闭进程

Windows Cmd查询端口号对应的进程及关闭进程 1. 使用 netstat 查询端口和进程信息 运行以下命令: netstat -ano | findstr :端口号示例: 如果要查询端口 80812. 查找进程 ID 所属的程序 通过上面命令的输出获取到 PID(进程 ID)后,可以使用以下命令查看对应的程序名称: ta…

hhdb数据库介绍(9-16)

SQL语法支持 事务管理与锁语句语句类型 事务语句 语句参数 状态 说明事务管理 START TRANSACTION 无参数 支持WITH CONSISTENT SNAPSHOT 支持READ WRITE 支持READ ONLY 支持BEGIN支持COMMIT支持COMMIT [AND [NO] CHAIN] [[NO] RELEASE] 支持ROLLBACK支持ROLLBACK [AND [NO] CHA…

MySQL_索引失效_类型转换

1.类型转换索引失效场景SELECT * FROM tbl_name WHERE str_col=1; 列str_col上有建立索引,一个字符串类型的列给一个整数类型的值。 问题:为什么会导致索引失效? 原因:MySQL官方文档解释:The reason for this is that there are many different strings that may convert …

Thinkpad X1 Tablet gen2 键盘改USB

0 写在前面 前文Thinkpad X1 Tablet gen2 键盘固件逆向实现Ctrl与Fn换位记录了Thinkpad X1 Tablet gen2 键盘Fn和Ctrl换位的研究过程,本文记录一下该键盘改USB的过程。因为操作的时候没有留太多照片,所以尽量画图示意。 0.1 其他网友硬改成果 在硬改该键盘之前,在网上发现其…