description:

给定target, 求给定数列中找到几个数(其中的数不可以重复使用,且一组数有几个也不做限制)的和为target,和上面那个题一毛一样的,就改一下下标就行了,背下来背下来背下来~~~
Note:

All numbers (including target) will be positive integers.
The solution set must not contain duplicate combinations. //这个条件注意了,只要是两个挨着的一样,那么就会导致最后出现相同的组合

Example:

Example 1:Input: candidates = [10,1,2,7,6,1,5], target = 8,
A solution set is:
[[1, 7],[1, 2, 5],[2, 6],[1, 1, 6]
]Example 2:Input: candidates = [2,5,2,1,2], target = 5,
A solution set is:
[[1,2,2],[5]
]

answer:

class Solution {
public:vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {vector<vector<int>> res;vector<int> out;sort(candidates.begin(), candidates.end()); //这里刚开始就没写,一定要先变成有序数组!!!combinationDFS(candidates, res, out, target, 0);return res;}void combinationDFS(vector<int>& candidates, vector<vector<int>>& res, vector<int>& out, int target, int start) {if(target < 0) return;if(target == 0) {res.push_back(out);return;}for(int i = start; i < candidates.size(); i++) {if(i > start && candidates[i] == candidates[i - 1]) continue; //这里也要注意了,因为上边那个note的第二条out.push_back(candidates[i]);combinationDFS(candidates, res, out, target - candidates[i], i + 1);out.pop_back();}}
};

relative point get√:

hint :

转载于:https://www.cnblogs.com/forPrometheus-jun/p/11166218.html

40. Combination Sum II **相关推荐

  1. 40. Combination Sum II 组合总和 II

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

  2. 40. Combination Sum II

    避免这个循环的重复 所以i>position && nums[i] == nums[i-1] 1 class Solution { 2 List<List<Integ ...

  3. 【DFS】LeetCode 40. Combination Sum II

    Solution1:我的答案 同39题.DFS时间复杂度O(2n)O(2n)O(2^n),空间复杂度O(kn)O(kn)O(kn),k是最终答案的数量,n是元素个数 去重,用set,比较偷懒的做法 c ...

  4. Combination Sum 和Combination Sum II

    这两道题的基本思路和combination那一题是一致的,也是分治的方法. 其中combination Sum复杂一点,因为每个数可能用多次.仔细分析下,本质上也是一样的.原来是每个数仅两种可能.现在 ...

  5. 递归/回溯:Combination Sum II数组之和

    问题如下: 已知一组数(其中有重复元素),求这组数可以组成的所有子集中,子 集中的各个元素和为整数target的子集,结果中无重复的子集. 例如: nums[] = [10, 1, 2, 7, 6, ...

  6. C#LeetCode刷题之#40-组合总和 II(Combination Sum II)

    目录 问题 示例 分析 问题 该文章已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3666 访问. 给定一个数组 candidates ...

  7. Combination Sum II

    1 解析 这道题是则就是上一道题的进阶版,此题可以出现相同的元素,例如[1 1 1 7] 目标值为8,那么难点就在于如何去除重复的情况,只保留[1 7]这种情况. 2 思路 都是采用DFS求解,思路和 ...

  8. LeetCode40 Combination Sum II 解析

    详细见:leetcode.com/problems/combination-sum-ii C和Python的去重算法,应该记住. Java是很久之前写的,并不好. 规则是:相同数字. 1,前面选了,后 ...

  9. Lintcode: k Sum II

    Given n unique integers, number k (1<=k<=n) and target. Find all possible k integers where the ...

最新文章

  1. php在dw中设置按钮圆角,Dreamweaver怎么用CSS制作圆角按钮?
  2. 无需u盘和光盘安装linux
  3. Oracle计算两个整数的和与这两个整数的差与商
  4. 事务的传播性和隔离级别
  5. 设计模式 之 工厂模式
  6. java spring注入 静态方法_java相关:spring为类的静态属性实现注入实例方法
  7. python字典没有长度限制_python-字典更新序列元素#0的长度为15; 2个为必填项
  8. 替换字符串_面试题精选:字符串替换
  9. 【安装配置】Oracle数据库Linux系统下安装(图形界面)
  10. php yii2模块,Yii2 之 frontend 子模块实践之四:路由美化
  11. mybatis执行opensession时空指针异常_关于 Mybatis 缓存的那点事儿,你知道吗?
  12. 跟踪某个类所创建对象的个数
  13. linux文件夹同步-文件对比工具,FreeFileSync,文件/文件夹比较和自动同步软件
  14. 软件需求规格说明书 模板
  15. donet 微服务开发 学习-熔断降级 Polly
  16. 什么是IAST(交互式应用安全测试)?
  17. 个性化不和谐帐户的8种方法
  18. 360安全桌面没有计算机了,360安全卫士桌面上的图标不见了怎么办
  19. 特斯拉降维打击 国产电动车怎么“盘”?
  20. 为什么CPU需要时钟才能工作

热门文章

  1. 虚拟化技术知识点初步梳理
  2. C#将文件压缩或者解压
  3. html5 数字滚动选择器,Odometer使用JavaScript和CSS制作数字滑动效果
  4. matlab画图模糊,[转载]matlab中模糊工具箱的使用
  5. Ansible中的变量及加密
  6. 裴蜀定理(note)
  7. P1101 单词方阵
  8. 1720: 交换瓶子
  9. 李飞飞演讲实录 | 云原生数据库2.0:一站式全链路数据管理与服务
  10. 阿里云混合云的政企上云新路径