当前位置: 首页 > news >正文

组合总和-leetcode

题目描述

给你一个 无重复元素 的整数数组 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 <= 30
  • 2 <= candidates[i] <= 40
  • candidates 的所有元素 互不相同
  • 1 <= target <= 40

解法一

思路:

回溯法

1

在这个过程中使用剪枝。

代码:

class Solution {List<List<Integer>> res=new ArrayList<>();public List<List<Integer>> combinationSum(int[] candidates, int target) {backTrack(new ArrayList<>(), candidates, target, 0,0);return res;}//start用来剪枝,从下标start开始遍历public void backTrack(List<Integer> cur,int[] candidates, int target,int curSum,int start) {if(curSum==target){res.add(new ArrayList<>(cur));return;}if(curSum>target) return;for(int i=start;i<candidates.length;i++){curSum+=candidates[i];cur.add(candidates[i]);backTrack(cur,candidates,target,curSum,i);cur.remove(cur.size()-1);curSum-=candidates[i];}}
}
http://www.jsqmd.com/news/550487/

相关文章:

  • 全国1:20万地质图/mapgis矢量地质数据分幅岩性断层数据库
  • 别再踩坑了!UniApp集成支付宝支付,从创建应用到上线审核的保姆级避坑指南
  • 戴森球计划工厂蓝图架构揭秘:3000+精选方案如何重塑你的太空建造体验
  • 别再拍脑袋定A/B测试样本量了!用Python/Excel/R三分钟算出靠谱结果
  • ADE XL仿真
  • 如何一键备份你的QQ空间历史说说:GetQzonehistory完整实战指南
  • Note - 布尔代数基础与 2-SAT
  • 实战指南:用快马平台和openclaw构建企业级服务器监控部署系统
  • Nunchaku-FLUX.1-dev中文文化符号理解:二十四节气、传统纹样、非遗元素生成
  • 5分钟部署Llama Factory:开箱即用的大模型训练平台
  • 云端存储本地化革新:从0到1掌握s3fs-fuse文件系统映射技术
  • 实战应用:基于快马AI构建企业级openclaw灰度发布与自动回滚系统
  • 大文件传输不再难:探索高效文件分享工具的实战指南
  • 实测 MFCMouseEffect,炫酷特效还能提升办公效率
  • 快速生成node.js环境配置原型:用快马一键创建安装验证工具
  • 提升科研效率:用快马AI自动化工具优化学术工作流
  • 避坑指南:用STK 11.2计算卫星相对位置时,90%的人会忽略的VVLH坐标系和投影矢量设置细节
  • 2026年对拷线方案深度测评:从协同效率到场景适配的选型指南
  • GitHub Trending 每日精选 - 2026-03-28
  • 5大技术维度精通ABC系统:数字电路设计的逻辑综合与形式验证实践指南
  • 基于LangChain的RAG与Agent智能体开发 - 文档加载器
  • Qwen-Image-Edit-F2P在Java生态中的应用:图像处理服务开发
  • 突破大文件传输瓶颈:aliyunpan快传链接技术全解析
  • 效率提升:用快马一键生成可复用tk登录组件,告别重复编码
  • labelCloud:开源3D点云标注工具的全面解析与实战指南
  • 专注核心创新:用快马AI生成openclaw101开发效率工具链
  • Qwen3-32B保姆级部署教程:3步搞定,零基础也能快速上手
  • 逆向设计新范式:深度学习驱动的声学超材料智能优化!
  • AIGlasses_for_navigation效果展示:移动端适配视频流中实时盲道检测效果
  • openstack配置九州云安装步骤(Skyline)