39. Combination Sum
2015-06-08 21:01
281 查看
Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where
the candidate numbers sums to T.
The same repeated number may be chosen from C unlimited number of times.
Note:
All numbers (including target) will be positive integers.
Elements in a combination (a1, a2,
… , ak) must be in non-descending order. (ie, a1 ≤ a2 ≤
… ≤ ak).
The solution set must not contain duplicate combinations.
For example, given candidate set
A solution set is:
用map来记录一个组合是否出现过。
注意记录cur的vector是值传递,而不是引用。
注意for循环中candidates[i] <= target
the candidate numbers sums to T.
The same repeated number may be chosen from C unlimited number of times.
Note:
All numbers (including target) will be positive integers.
Elements in a combination (a1, a2,
… , ak) must be in non-descending order. (ie, a1 ≤ a2 ≤
… ≤ ak).
The solution set must not contain duplicate combinations.
For example, given candidate set
2,3,6,7and target
7,
A solution set is:
[7]
[2, 2, 3]
用map来记录一个组合是否出现过。
注意记录cur的vector是值传递,而不是引用。
注意for循环中candidates[i] <= target
class Solution { public: void Helper(vector<vector<int>> &ret,vector<int> cur,vector<int> &candidates,int target,map<vector<int>,bool> &m) { if(target == 0) { sort(cur.begin(),cur.end()); if(m[cur] == false) { ret.push_back(cur); m[cur] = true; } } else { for(int i = 0;i<candidates.size() && candidates[i] <= target;i++) { int val = candidates[i]; cur.push_back(val); Helper(ret,cur,candidates,target-val,m); cur.pop_back(); } } } vector<vector<int> > combinationSum(vector<int> &candidates, int target) { sort(candidates.begin(),candidates.end()); vector<vector<int>> ret; map<vector<int>,bool> m; vector<int> cur; Helper(ret,cur,candidates,target,m); return ret; } };
相关文章推荐
- SOJ.Subtraction
- vs2010 中无法用qt设计师打开ui文件
- Hadoop RPC远程过程调用源码解析及实例
- bzoj-1085 骑士精神
- C# dev开发过程中的山炮问题汇总
- Java的native方法
- java打印前100个回文素数
- AlertDialog点击button时由于逻辑需要不关闭dialog的实现
- 使用Retrace还原被ProGuard混淆后的崩溃堆栈
- 第13周-项目1-小玩文件-用键盘输入文件名,统计输出文件中每个字母、数字字符出现的次数
- HDU5266---pog loves szh III (线段树+LCA)
- [JavaWeb基础] 003.JAVA访问Mysql数据库
- Backlight当前行背景高亮显示
- iOS开发—06音频处理(音乐播放器6)
- Java的垃圾回收
- 异常: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContex
- 挖一挖不常用到而又很实用的重载-Trim
- 服务器压力上不去原因分析
- Java的字节流和字符流
- android常用开发框架