给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。

candidates 中的每个数字在每个组合中只能使用一次。

说明:

  • 所有数字(包括目标数)都是正整数。
  • 解集不能包含重复的组合。

示例 1:

输入: candidates = [10,1,2,7,6,1,5], target = 8
所求解集为:
[[1, 7],[1, 2, 5],[2, 6],[1, 1, 6]
]

示例 2:

输入: candidates = [2,5,2,1,2], target = 5
所求解集为:
[[1,2,2],[5]
]

递归

跟昨天的39. Combination Sum 组合总和一样,只不过加了个限制每个数字只能使用一次的条件。

Code

 def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]:def dfs(start, use, remain):for index, value in enumerate(candidates[start:]):if value == remain and use + [value] not in ans:ans.append(use + [value])elif value < remain:dfs(start + index + 1, use + [value], remain - value)else:return ans = []candidates.sort()dfs(0, [], target)return ans

40. Combination Sum II 组合总和 II相关推荐

  1. 216. Combination Sum III 组合总和 III

    找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字. 说明: 所有数字都是正整数. 解集不能包含重复的组合. 示例 1: 输入: k = ...

  2. leetcode 39. Combination Sum | 39. 组合总和(Java)

    题目 https://leetcode.com/problems/combination-sum/ 题解 不是最优解法. 对于每一个位置 i 上 的元素,分为选或不选两种情况. 遍历每一个位置,计算强 ...

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

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

  4. leetcode系列--40.组合总和 II

    leetcode系列–第40题.组合总和 II 给你一个由候选元素组成的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合 ...

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

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

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

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

  7. ii 组合总和_40. 组合总和 II

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

  8. 005. 组合总和 II

    1.题目链接: 40. 组合总和 II 2.解题思路: 树层:同层遍历 树枝:递归遍历 2.1.题目要求: 给定一个数组 candidates 和一个目标数 target ,找出 candidates ...

  9. Leetcode 组合总和II

    组合总和II 题目描述: 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字 ...

最新文章

  1. 计算机二级vfp知识点,全国计算机二级等级考试VFP知识点提纲
  2. notepad如何新建php,notepad新手怎么使用教程
  3. linux增加电子档案空间,Linux 建立 SWAP 档案空间
  4. emplace与insert
  5. origin图上显示数据标签_Origin(Pro):寒假都结束了,这个图还是不会画?【数据绘图】...
  6. Arm学习总结之 32位和64位寄存器
  7. 泛型的应用-vue3之ref
  8. 第二次作业—熟悉使用工具
  9. 为什么数据库表字段要限制长度?
  10. 智能小车——循迹、避障小车(附详细代码)
  11. win10完美运行红警
  12. 团队管理14--盘点团队
  13. 码农到架构师视频学习笔记
  14. [blockchain-042]eos 硅谷ecs docer编译 mongo存储
  15. Android App 耗电的测试方法
  16. R语言 quantmod 如何下载汇率
  17. [bzoj4372]烁烁的游戏
  18. 搭建CTF-AWD训练平台
  19. oracle ins ctx.mk,(原创)RHEL/CentOS 6.x 64位安装Oracle11gR2 64位出现ins_ctx.mk报错解决...
  20. 【软工实践】第10组 团队展示(组长)

热门文章

  1. v-charts修改点击图例事件,legendselectchanged
  2. Nmap参数--探索网络
  3. QDir, QFileInfo 和 QDirIterator 区别
  4. SQL SERVER – Beginning of SQL Server Architecture – Terminology – Guest Post
  5. Windows 系统下Git安装图解
  6. Axure RP Pro 6.0 原型设计工具(产品经理必备)
  7. Net中如何操作IIS
  8. ubuntu18.04安装windows版本微信
  9. 【C语言练习】将100~200之间的素数输出
  10. sql导入excel数据失败_nifi入门从Excel数据导入ES开始