分析:

由于结果数组要求元素有序,所以在一开始便对原数组进行排序。之后调用回溯函数,与求组合那题的不同之处在于,循环里面递归调用回溯函数中的level参数使用i而非i+1,因为题中允许存在重复元素。

public static List<List<Integer>> combinationSum2(int[] candidates, int target) {List<List<Integer>> ll = new ArrayList<>();Arrays.sort(candidates);dfs(candidates,target,ll,new ArrayList<Integer>(),0);return ll;}private static void dfs(int[] candidates, int target, List<List<Integer>> ll, ArrayList<Integer> l, int start) {if(target==0){ll.add(new ArrayList<>(l));return;}for (int i = start ; i < candidates.length; i++) {if(candidates[i] <= target){l.add(candidates[i]);dfs(candidates,target-candidates[i],ll,l,i);l.remove(l.size()-1);}else return;}}

若结果集中不能重复利用数字,需对添加去重条件LeetCode-40. 组合总和 II

LeetCode-39. 组合总和 I相关推荐

  1. LeetCode 39 组合总和

    LeetCode 39 组合总和 题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合.can ...

  2. leetcode 39. 组合总和 40. 组合总和 II

    leetcode 39. 组合总和 40. 组合总和 II 组合总和 给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和 ...

  3. LeetCode 39. 组合总和(排列组合 回溯)

    1. 题目 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无 ...

  4. leetcode - 39. 组合总和

    给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限制重复被选 ...

  5. leetcode 39. 组合总和

    执行用时:4 ms, 在所有 C++ 提交中击败了91.98%的用户 内存消耗:10.5 MB, 在所有 C++ 提交中提交中击败了90.06%的用户 给你一个无重复元素的整数数组 candidate ...

  6. Leetcode 39 组合总和 (每日一题 20210806)

    给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合.candidates 中的数字可以 ...

  7. leetcode 39. 组合总和 思考分析

    目录 1.题目 2.思考分析 3.未经优化代码 4.剪枝优化 1.题目 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 ...

  8. leetcode —— 39. 组合总和

    给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合.candidates 中的数字可以无限制重复被选取 ...

  9. LeetCode 39. 组合总和(回溯+剪枝)

    题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限 ...

  10. LeetCode 39:组合总和(Javascript 解答)

    原题目 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回 ...

最新文章

  1. 假如有Thread1、Thread2、ThreaD3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?...
  2. python模块和包用法详解(__all__)
  3. iOS 滚动图滚动到顶部汇总
  4. 【前端芝士树】Javascript的原型与原型链
  5. Java线程死锁–案例研究
  6. LeetCode 1145. 二叉树着色游戏(计算节点个数)
  7. 初识人工智能(一):数据分析(二):numpy科学计算基础库(一)
  8. 任务计划中的结果代码
  9. oracle查询不等于1000,解决oracle查询时 in 大于1000的办法
  10. Python基础——模块的安装
  11. quartus仿真6:74194构建线性反馈移位寄存器计数器LFSR
  12. python apply函数不打印_Python Pandas dataframe shift在apply函数中不起作用
  13. linux下python网络编程框架-twisted安装手记,linux下Python网络编程框架-Twisted安装
  14. android开发跑步软件设计,计算机软件毕业设计 android跑步应用开发.doc
  15. html 漂亮的边框效果图,Css效果之好看的边框颜色大全
  16. 东软Unieap平台
  17. 中兴微型计算机,售价2698元起!中兴首款5G视频手机AR线上发布
  18. AndroidIos打包
  19. 括号匹配问题(数据结构)
  20. html手机页面弹幕效果,H5移动端弹幕动画实现

热门文章

  1. 一个常见的asp.net错误解决
  2. SQL Server 2005中的SQLCMD工具使用
  3. LG电子计划到2010年实现利润翻番
  4. 诗与远方:无题(八十一)
  5. 诗与远方:无题(三十六)- 素质低下
  6. JavaScript之判断用户登录信息
  7. 【SpringCloud从0到6】 第二节:注册中心 - eureka
  8. localdatetime 获取天_LocalDateTime的一些用法
  9. 解决谷歌浏览器所有页面崩溃问题
  10. SpringBoot-Jsoup做java简单-爬虫