尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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]; } } }
RELATED

相关推荐

JAVA练习330- 电话号码的字母组合

JAVA练习330- 电话号码的字母组合

题目概览 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits "23" …

📅 2026/9/20 11:58:46
Cocos Creator 3D物理射线检测:从原理到实战的交互开发指南

Cocos Creator 3D物理射线检测:从原理到实战的交互开发指南

1. 项目概述:为什么3D物理射线检测是交互的基石在任何一个3D游戏或交互应用中,当玩家点击屏幕,试图选中一个远处的宝箱、与NPC对话,或者用准星瞄准敌人时,背后默默工作的核心技术,十有八九就是物理射线检测…

📅 2026/9/14 16:24:38
Godot状态机设计:从原理到实践解决2D平台游戏下落状态卡顿问题

Godot状态机设计:从原理到实践解决2D平台游戏下落状态卡顿问题

为什么你的角色在平台边缘总是"卡顿"?为什么跳跃动画和下落动画总是衔接不自然?如果你正在使用Godot开发2D平台游戏,那么状态机设计很可能是你游戏流畅度的关键瓶颈。 很多开发者以为状态机只是简单的if-else堆砌,但实…

📅 2026/9/12 3:00:50
MORE NEWS

更多资讯

📰

PaperYY降完AI句子拖沓?TaoToken这样改Claude Code的改写指令

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

📰

BrewUI:macOS 包管理图形化封装与可视化运维实践

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

📰

react-native-elements Badge 组件完全指南:数值徽标、Mini 状态点与 withBadge HOC 实战

UI组件移动开发前端 【免费下载链接】react-native-elements Cross-Platform React Native UI Toolkit 项目地址: https://gitcode.com/gh_mirrors/re/react-native-elements 点击查看 免费下载 Badge 是 React Native Elements 中用于向用户传达数值或条目状态的小…

📰

Python数据分析实战:Boss直聘数据清洗与可视化大屏全流程

简介:这份python数据分析与可视化项目以boss直聘网真实数据为源,覆盖岗位、城市、薪资、学历、工作经验等维度,适合数据分析初学者或期末大作业参考。项目包含完整数据清洗、重塑与plotly交互可视化流程,并借助flask与bootstrap搭…

📰

CO-PA数据传送核心:KEKF、KEI2、KE4I配置指南

做了这么多年FICO,我个人的感受是:CO-PA这个东西,配置起来不算难,但“数据传送”这一环,几乎每个项目都会出幺蛾子。尤其是销售开票、FI/MM记账以后,PA报表里查不到数,或者金额跟财务对不上&…

📰

llvm-project核心解析:掌握IR与Pass,构建自定义编译器生态

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

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬