1. 题目

给定一个数组 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]
]

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/combination-sum-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 类似题目
    LeetCode 216. 组合总和 III(排列组合 回溯)
    LeetCode 39. 组合总和(排列组合 回溯)

2. 回溯求解

class Solution {public:vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {sort(candidates.begin(), candidates.end());vector<vector<int>> ans;vector<int> subset;bt(0,0,target,subset,ans,candidates);return ans;}void bt(int i, int sum, int &target, vector<int> &subset, vector<vector<int>> &ans, vector<int> &candidates) {if(i > candidates.size() || sum > target)return;if(i <= candidates.size() && sum == target){ans.push_back(subset);return;}for(int j = i; j < candidates.size(); j++){if(j > i && candidates[j-1] == candidates[j])continue;subset.push_back(candidates[j]);bt(j+1, sum+candidates[j], target, subset, ans, candidates);subset.pop_back();}}
};

8 ms 7.1 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 40. 组合总和 II(排列组合 回溯)相关推荐

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

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

  2. Leetcode 组合总和 与 排列组合相关问题

    Leetcode 组合总和 与 全排列相关问题 组合总和 题目链接: Leetcode 39.组合总和 题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 c ...

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

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

  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. Leetcode 组合总和II

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

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

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

  9. 005. 组合总和 II

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

最新文章

  1. win10突然只剩下c盘和d盘了_电脑C盘爆满飘红?系统卡?试试这两种解决办法
  2. java批量上传图片_JAVA图片批量上传JS-带预览功能
  3. 计算机磁盘分为硬盘和什么,fat32是什么?
  4. 使用valgrind检查cache命中率
  5. 考研高等数学张宇30讲笔记——第十讲 积分等式与积分不等式
  6. lua jit android,某LuaJit游戏解密教程~~
  7. 离散数学第六版第er章偶数题答案_离散数学 第2章习题答案
  8. oracle查找用户名和密码忘记了,Oracle忘记用户名和密码的解决方案
  9. android自定义秒表(精确到0.1秒,带计次功能)
  10. 只有那些不断充实自己的人,才有机会在往后的日子里持续地被雇用
  11. gitlab ip变更runner拉取代码失败、shell启动springboot项目启动起来。
  12. 软件测试入门自学笔记(1)测试用例设计
  13. NIO与JVM基本概念
  14. mysql 删除 某字段中的指定字符串
  15. 用html做祝福语朋友,朋友祝福语大全简短
  16. 拉起Docker容器初始化数据源时,报:org.postgresql.util.PSQLException: The connection attempt failed. 的解决办法
  17. BZOJ2054疯狂的馒头
  18. 抖音上的战斗力测试软件,抖音战斗力测试app
  19. 2022-2028年中国IDC行业投资潜力研究及发展趋势预测报告
  20. 神话造词——了解单词的起源及演变如何能帮我们更好地记单词

热门文章

  1. oracle 返回表的函数,oracle 返回表函数
  2. oracle指令df,​ oracle 常用命令大汇总
  3. ftp服务器上传文件权限设置,ftp服务器 上传文件权限设置
  4. Android找工作系列之自定义View
  5. (二)AS给button添加点击事件
  6. Java实现十进制数转十六进制数
  7. Service Worker,Web Worker,WebSocket的对比
  8. Flume之核心架构深入解析
  9. mysql 8.0 一条insert语句的具体执行流程分析(三)
  10. 物联网开发者被疯抢,华为做了什么?