JAVA练习331- 组合总和 题目概览给你一个无重复元素的整数数组candidates和一个目标整数target找出candidates中可以使数字和为目标数target的 所有不同组合并以列表形式返回。你可以按任意顺序返回这些组合。candidates中的同一个数字可以无限制重复被选取。如果至少一个数字的被选数量不同则两种组合是不同的。对于给定的输入保证和为target的不同组合数少于150个。示例 1输入candidates [2,3,6,7], target 7输出[[2,2,3],[7]]解释2 和 3 可以形成一组候选2 2 3 7 。注意 2 可以使用多次。 7 也是一个候选 7 7 。 仅有这两种组合。示例 2输入:candidates [2,3,5], target 8输出:[[2,2,2,2],[2,3,3],[3,5]]示例 3输入:candidates [2], target 1输出:[]提示1 candidates.length 302 candidates[i] 40candidates的所有元素互不相同1 target 40来源39. 组合总和 - 力扣LeetCode解题分析方法回溯令当前索引为 i用集合 list 存储每次遍历得到的元素每次递归时遍历数组 candidates将元素加入 list 中然后 target - candidates[ i ]继续往下层遍历当 target 0 时存储 list 到最终结果中去当 target 0 时已没有可加的元素直接返回当 target 0 时继续重复以上操作遍历递归当下层遍历完成后将当前元素移除 list然后 target candidates[ i ]继续遍历下一个元素直到所有元素遍历完成返回结果。时间复杂度O(S) ( S 为所有可行解的长度之和 )空间复杂度O(target)class Solution { public ListListInteger combinationSum(int[] candidates, int target) { ListListInteger result new ArrayList(); backTracking(candidates, target, result, new ArrayList(), 0, candidates.length); return result; } public void backTracking(int[] candidates, int target, ListListInteger result, ListInteger list, int index, int n) { if (target 0) { result.add(new ArrayList(list)); return; } if (target 0) { return; } for (int i index; i n; i) { list.add(candidates[i]); target - candidates[i]; backTracking(candidates, target, result, list, i, n); list.remove(list.size()-1); target candidates[i]; } } }

相关新闻

最新新闻

私域数据在AI开发中的双重角色与技术实现

私域数据在AI开发中的双重角色与技术实现

1. 私域数据在AI开发中的双重角色私域数据在企业AI开发中扮演着两个看似矛盾实则互补的角色:作为"燃料"提供能量,作为"配方"定义方向。这种双重属性决定了其在AI应用开发中的核心价值。1.1 数据作为"燃料"的基础作用数据作…

2026/7/24 9:47:33
扩散模型核心技术解析:从原理到工程实践

扩散模型核心技术解析:从原理到工程实践

1. 扩散模型的技术演进与现状扩散模型作为当前生成式AI的核心技术之一,其发展脉络可以追溯到2015年提出的非平衡态热力学理论。但直到2020年DDPM(Denoising Diffusion Probabilistic Models)论文的发表,这项技术才真正展现出惊人的…

2026/7/24 9:47:33
龙虾AI企业办公系统哪家好 2026重视数据隐私企业智能助手推荐清单

龙虾AI企业办公系统哪家好 2026重视数据隐私企业智能助手推荐清单

随着 OpenClaw 开源框架衍生的龙虾 AI 本地智能体逐步普及,不少小微企业、创业工作室在落地办公自动化工具时,都会重点考量企业内部资料、客户资源、经营报表的数据安全。市场上各类龙虾 AI 办公系统运行模式存在明显区分,本地部署类产品能够…

2026/7/24 9:47:33
Harris角点检测原理与实践:从基础到应用

Harris角点检测原理与实践:从基础到应用

1. Harris角点检测概述 计算机视觉领域中,角点检测是一项基础而重要的任务。Harris角点检测算法由Chris Harris和Mike Stephens在1988年提出,至今仍是许多视觉系统的首选方法。它通过分析图像局部窗口内的灰度变化来识别角点特征,这些特征具有…

2026/7/24 9:47:33
Vue3 Composition API、Pinia与Vue Router实战:构建复杂单页应用

Vue3 Composition API、Pinia与Vue Router实战:构建复杂单页应用

Vue3 已经成为现代前端开发的主流选择,特别是其 Composition API、Pinia 状态管理和 Vue Router 路由系统的组合,让开发者能够构建更复杂、更易维护的应用。这次我们深入实战,看看如何真正掌握这三个核心工具。 从实际项目经验来看&#xff…

2026/7/24 9:47:33
HiFICL框架:多模态学习中的跨模态精准对齐技术

HiFICL框架:多模态学习中的跨模态精准对齐技术

1. 项目背景与核心价值在人工智能领域,多模态学习正成为突破单模态能力瓶颈的关键方向。传统上下文学习(In-Context Learning)方法在处理跨模态数据时,往往面临语义对齐失真、特征交互低效等典型问题。HiFICL项目的创新之处在于&a…

2026/7/24 9:42:33

月新闻