豆包    LeetCode 39. 组合总和 Java实现
题目说明LeetCode39 组合总和给定无重复元素候选数组 candidates 和目标 target 可以重复选取数组元素找出所有和为 target 的组合。同一个数字可以多次选用组合顺序无关不能重复输出组合回溯DFS实现Java完整代码javaimport java.util.ArrayList;import java.util.List;class Solution {public ListList combinationSum(int[] candidates, int target) {ListList res new ArrayList();List path new ArrayList();backtrack(candidates, target, 0, path, res);return res;}/** * param start 只从start往后选避免产生[2,3]和[3,2]重复组合 * param path 当前选中的数字路径 */ private void backtrack(int[] candidates, int remain, int start, ListInteger path, ListListInteger res) { if (remain 0) { res.add(new ArrayList(path)); return; } if (remain 0) { return; } for (int i start; i candidates.length; i) { int val candidates[i]; path.add(val); // 仍从i开始允许重复选取当前元素 backtrack(candidates, remain - val, i, path, res); path.remove(path.size() - 1); // 回溯撤销选择 } }}核心思路回溯DFS逐个枚举候选数字start索引去重只从start向后遍历防止不同排列视为不同答案例如 [2,3] 与 [3,2] 允许重复选取递归下一层起点仍然是 i 而不是 i1递归终止剩余值 remain 0 收集答案 remain0 剪枝返回复杂度简要分析时间指数级 O(2^N)取决于可行组合数量空间O(target)递归栈深度测试示例javapublic static void main(String[] args) {Solution solnew Solution();int[] arr{2,3,6,7};System.out.println(sol.combinationSum(arr,7));//输出 [[2,2,3],[7]]}如果你需要我可以提供剪枝优化版本先排序提前终止循环。

相关新闻

王者荣耀凯双冰流出装解析:从爆发刺客到持续控制战士的版本转型

王者荣耀凯双冰流出装解析:从爆发刺客到持续控制战士的版本转型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/2 16:48:06 阅读更多 →
技术选型实战:FastAPI与Spring Boot在初创项目中的场景化对决

技术选型实战:FastAPI与Spring Boot在初创项目中的场景化对决

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/2 16:48:06 阅读更多 →
残虹安魂曲dot队逆环境35秒通关,低命座配队详解

残虹安魂曲dot队逆环境35秒通关,低命座配队详解

这套残虹安魂曲dot队,真正值得看的不是名字有多中二,而是它用比较低的角色命座,在明显不利的轨外上半环境里打出了35秒通关。逆环境这个词本身就说明问题:当前关卡的机制、怪物抗性或战斗buff大概率不偏向持续伤害,结果…

2026/9/2 16:47:06 阅读更多 →

最新新闻

《重返未来:1999》试炼场4-3通关攻略:阵容搭配与实战操作详解

《重返未来:1999》试炼场4-3通关攻略:阵容搭配与实战操作详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/2 17:37:35 阅读更多 →
程序员如何通过游戏化训练掌握盲打,提升编码效率与思维流畅度

程序员如何通过游戏化训练掌握盲打,提升编码效率与思维流畅度

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/2 17:37:35 阅读更多 →
会编网络: 职场人学 Python,不用做开发,学会“自动化干活”就够

会编网络: 职场人学 Python,不用做开发,学会“自动化干活”就够

谈及学, 不少职场人士会认为“此乃程序员之技能”, 心忧自身学不会, 甚而觉得没必要去学。实际上, 职场人学, 压根无需搞开发, 不必钻研繁杂的代码与算法, 只要学会“自动化干活”, 便能显著提高工作效率, 这才是最为实用的学习方向。职场人士的核心需求在于高效达成工作, 削减…

2026/9/2 17:37:35 阅读更多 →
Python 操作 Word:如何查找、替换和批量修改文本

Python 操作 Word:如何查找、替换和批量修改文本

于Word文档的自动化处理里头 , 查找文本以及替换文本 , 属于极基础亦是极频繁的操作当中的一种。不管是成批修改合同里的条款编号 , 亦或是更新报告里的日期信息 , 又或者是于众多文档里统一去调整术语表述 , 具备高效的文本查找替换能力 , 都是文档处理流程的核心部分。这篇文…

2026/9/2 17:37:35 阅读更多 →
CPU散片与盒装全解析:价格、保修、选购策略与避坑指南

CPU散片与盒装全解析:价格、保修、选购策略与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/2 17:37:35 阅读更多 →
联想M7450/M7400/M7650一体机固件升级实战:从误报换粉到刷机恢复全攻略

联想M7450/M7400/M7650一体机固件升级实战:从误报换粉到刷机恢复全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/2 17:36:34 阅读更多 →

日新闻

QEMU为什么能模拟不同CPU?从ISA、CPU模型到指令翻译讲起

QEMU为什么能模拟不同CPU?从ISA、CPU模型到指令翻译讲起

1. 引言:一个软件为何能“伪装”成不同CPUQEMU 是一款广为人知的开源模拟器,它既能在一台 x86 电脑上运行 ARM 系统,也能在 ARM 开发板上启动 x86 的 Linux 发行版。很多人第一次接触 QEMU 时都会好奇:一个纯软件程序,…

2026/9/2 0:00:30 阅读更多 →
单片机计算机毕设之基于 STM32 或 51 单片机的感知式智能垃圾桶硬件控制系统设计 基于 STM32 或 51 单片机的安全防护型智能垃圾桶装置设计(025005)

单片机计算机毕设之基于 STM32 或 51 单片机的感知式智能垃圾桶硬件控制系统设计 基于 STM32 或 51 单片机的安全防护型智能垃圾桶装置设计(025005)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:00:30 阅读更多 →
单片机计算机毕设之基于 ESP8266 的智能垃圾分类桶 APP 监控系统设计与实现 基于单片机的超声波满溢检测垃圾分类装置设计(025105)

单片机计算机毕设之基于 ESP8266 的智能垃圾分类桶 APP 监控系统设计与实现 基于单片机的超声波满溢检测垃圾分类装置设计(025105)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:00:30 阅读更多 →

周新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/9/1 19:44:48 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

2026/9/1 18:13:19 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/9/2 1:01:37 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/2 1:06:24 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/2 1:01:13 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/2 2:01:56 阅读更多 →