40. Combination Sum II **
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 **相关推荐
- 40. Combination Sum II 组合总和 II
给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合中只能使用一次. ...
- 40. Combination Sum II
避免这个循环的重复 所以i>position && nums[i] == nums[i-1] 1 class Solution { 2 List<List<Integ ...
- 【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 ...
- Combination Sum 和Combination Sum II
这两道题的基本思路和combination那一题是一致的,也是分治的方法. 其中combination Sum复杂一点,因为每个数可能用多次.仔细分析下,本质上也是一样的.原来是每个数仅两种可能.现在 ...
- 递归/回溯:Combination Sum II数组之和
问题如下: 已知一组数(其中有重复元素),求这组数可以组成的所有子集中,子 集中的各个元素和为整数target的子集,结果中无重复的子集. 例如: nums[] = [10, 1, 2, 7, 6, ...
- C#LeetCode刷题之#40-组合总和 II(Combination Sum II)
目录 问题 示例 分析 问题 该文章已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3666 访问. 给定一个数组 candidates ...
- Combination Sum II
1 解析 这道题是则就是上一道题的进阶版,此题可以出现相同的元素,例如[1 1 1 7] 目标值为8,那么难点就在于如何去除重复的情况,只保留[1 7]这种情况. 2 思路 都是采用DFS求解,思路和 ...
- LeetCode40 Combination Sum II 解析
详细见:leetcode.com/problems/combination-sum-ii C和Python的去重算法,应该记住. Java是很久之前写的,并不好. 规则是:相同数字. 1,前面选了,后 ...
- Lintcode: k Sum II
Given n unique integers, number k (1<=k<=n) and target. Find all possible k integers where the ...
最新文章
- php在dw中设置按钮圆角,Dreamweaver怎么用CSS制作圆角按钮?
- 无需u盘和光盘安装linux
- Oracle计算两个整数的和与这两个整数的差与商
- 事务的传播性和隔离级别
- 设计模式 之 工厂模式
- java spring注入 静态方法_java相关:spring为类的静态属性实现注入实例方法
- python字典没有长度限制_python-字典更新序列元素#0的长度为15; 2个为必填项
- 替换字符串_面试题精选:字符串替换
- 【安装配置】Oracle数据库Linux系统下安装(图形界面)
- php yii2模块,Yii2 之 frontend 子模块实践之四:路由美化
- mybatis执行opensession时空指针异常_关于 Mybatis 缓存的那点事儿,你知道吗?
- 跟踪某个类所创建对象的个数
- linux文件夹同步-文件对比工具,FreeFileSync,文件/文件夹比较和自动同步软件
- 软件需求规格说明书 模板
- donet 微服务开发 学习-熔断降级 Polly
- 什么是IAST(交互式应用安全测试)?
- 个性化不和谐帐户的8种方法
- 360安全桌面没有计算机了,360安全卫士桌面上的图标不见了怎么办
- 特斯拉降维打击 国产电动车怎么“盘”?
- 为什么CPU需要时钟才能工作