leetcode系列–第40题.组合总和 II

给你一个由候选元素组成的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个元素在每个组合中只能使用 一次 。注意:解集不能包含重复的组合。
输入: candidates = [10,1,2,7,6,1,5], target = 8,
输出:
[[1,1,6],[1,2,5],[1,7],[2,6]
]输入: candidates = [2,5,2,1,2], target = 5,
输出:
[[1,2,2],[5]
]
// 40题和39题的区别就是去重
// 去重第一步。数组 排序
/*** @param {number[]} candidates* @param {number} target* @return {number[][]}*/
var combinationSum2 = function (candidates, target) {// 数组排序let candidatesSort = candidates.sort((a, b) => a - b)let result = [], // 输出结果数组path = [] // 路径数组fnHelp(candidatesSort, target, 0)return resultfunction fnHelp(candidates, target, startIndex) {// 递归结束条件if (sum(path) === target) {result.push([...path])return} else if (sum(path) > target) {return}                           let temp = -1; // 设定一个暂时区纪录上一个数for (let i = startIndex; i < candidates.length; i++) {if (candidates[i] === temp) {continue}path.push(candidates[i])temp = candidates[i];fnHelp(candidates, target, i + 1)path.pop()}}function sum(arr) {let res = arr.length && arr.reduce((prev, cur) => {return prev + cur})return res}
};

leetcode系列--40.组合总和 II相关推荐

  1. 【LeetCode】40. 组合总和 II (JavaScript)

    原题 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组 ...

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

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

  3. 77.组合 | 40.组合总和II | 39.组合总和 | 784.字母大小写全排列

    77.组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合. 你可以按 任何顺序 返回答案. 示例 1: 输入:n = 4, k = 2 输出: [   [2,4], ...

  4. Suzy找到实习了吗 Day27 | 回溯进行中:39. 组合总和,40. 组合总和 II,131.分割回文串

    39. 组合总和 题目 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 , ...

  5. LeetCode 40. 组合总和 II(排列组合 回溯)

    1. 题目 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合中只 ...

  6. leetcode系列--39.组合总和

    leetcode系列–第39题.组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 ...

  7. leetcode系列--216.组合总和 III

    leetcode系列–第216题.组合总和 III 找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字.说明:所有数字都是正整数.解集不 ...

  8. python两两组合求和_LeetCode-python 40.组合总和 II

    题目链接 难度:中等       类型: 深度优先搜索 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. ca ...

  9. leetcode —— 40. 组合总和 II

    给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合中只能使用一次. ...

最新文章

  1. mysql dump 到的文件_mysql查询结果导出到文件
  2. python输入流和输出流_python读写gbk、utf-8等输入输出流
  3. mysqldump导出备份数据库报Table ‘performance_schema.session_variables‘ doesn‘t exist
  4. ASP.NET Core 整合Autofac和Castle实现自动AOP拦截
  5. FFT/NTT/FMT/FWT题目
  6. 【转】MVVM大比拼小结
  7. 铁大Facebook——十天冲刺(1)
  8. SAP License:客户统驭科目某天余额取数逻辑
  9. 计算机视觉专硕:OCR、实习和秋招
  10. C#之double内存
  11. Android 中的长度单位详解(dp、sp、px、in、pt、mm)具体解释与换算
  12. 人生三重界---看山不是山,看水不是水
  13. 【Vim】安装你的第一个Vim插件vim-pathogen
  14. android UI设计图片和文字尺寸px对应dp、sp值换算
  15. 如何盘活新零售5大线上线下交互模式?拥抱用户与收益增长
  16. 窗口分析函数_12_生成累计百分比排名
  17. mysql 重命名库_MySQL 库名重命名
  18. matlab数据归一化与反归一化处理
  19. 基于javaweb+springboot的医院管理系统(java+Springboot+ssm+mysql+maven)
  20. 终于当选微软2012年4月最有价值专家(MVP)了,不容易啊。都来恭喜一哈

热门文章

  1. 【Rbitrary】安装Eclips
  2. PVCBOT【15号A版】机械昆虫--六足爬行机器人
  3. 洛谷p5703---苹果采购 C语言
  4. vgh电压高了有什么_液晶屏VGH,VGL,VCOM电压值正常为多少-液晶屏vgh电压
  5. 《谈判力》读书笔记:前言
  6. transferto遇到的问题
  7. 勒让德函数(Legendre多项式)
  8. php继承exten,jQuery的extend方法【三种】
  9. swift中performSegue连线的使用storyboard加载多个控制器方法和demo下载
  10. OpenCV有多酷?