***(leetcode_backtracking) Combination Sum
来源:互联网 发布:网络安全技术包括 编辑:程序博客网 时间:2024/05/22 03:41
Combination Sum
Total Accepted: 28917 Total Submissions: 106458My SubmissionsGiven 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 2,3,6,7
and target 7
,
A solution set is: [7]
[2, 2, 3]
Have you met this question in a real interview?
Yes
No
Discuss
元素可重复,那就开始 用target/candidates[i], 然后将可能需要的candidates[i] 添加到vector中。
和Combination Sum II 没什么区别
class Solution { vector<bool> flag; vector<vector<int> > ret; void dfs(vector<int> &candidates, int target, int cursum, int curDep, int maxDep){ if(cursum==target){ vector<int> ans; for(int i=0;i<maxDep;i++) if(flag[i]) ans.push_back(candidates[i]); ret.push_back(ans); return; } if(curDep>=maxDep||cursum>target) return; if((curDep==0)||(curDep!=0 &&(((candidates[curDep]==candidates[curDep-1])&&flag[curDep-1])||candidates[curDep]!=candidates[curDep-1]))){ flag[curDep]=true; dfs(candidates, target, cursum+candidates[curDep], curDep+1, maxDep); } flag[curDep]=false; dfs(candidates, target, cursum, curDep+1, maxDep); }public: vector<vector<int> > combinationSum(vector<int> &candidates, int target) { int len = candidates.size(); for(int i=0;i<len;i++){ int num = target/candidates[i]; for(int j=1;j<num;j++) candidates.push_back(candidates[i]); } for(int i=0;i<candidates.size();i++) flag.push_back(false); sort(candidates.begin(),candidates.end()); dfs(candidates, target, 0, 0, candidates.size()); return ret; }};
0 0
- ***(leetcode_backtracking) Combination Sum II
- ***(leetcode_backtracking) Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Python学习02- 基本语法与数据结构
- Redis 起步
- POI对报表excel操作的总结
- 打麻将的战略战术各十八招
- 夏华夏-从技术细节看美团架构
- ***(leetcode_backtracking) Combination Sum
- Android使用WebView无法定位问题的解决方法
- 【示例】ShellExecuteEx起一个进程和SHGetValue读取注册表值
- touch click 的关系
- 照片墙动态效果
- iOS-Core-Animation-Advanced-Techniques(一)
- Android:CountDownTimer 中文API
- 解决织梦CMS后台验证码不正确的四种方法
- jquery easyui datagrid