LeetCode(39) Combination Sum
2015-10-04 17:03
381 查看
题目
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 2,3,6,7 and target 7,
A solution set is:
[7]
[2, 2, 3]
分析
用递归的思想实现~AC代码
class Solution { public: vector<vector<int>> combinationSum(vector<int>& candidates, int target) { if (candidates.empty() || target < 0) return vector<vector<int> >(); ret.clear(); //将给定序列排序 sort(candidates.begin(), candidates.end()); vector<int> tmp; combination(candidates, 0, tmp, target); return ret; } //递归实现 void combination(vector<int> &candidates, int idx, vector<int> &tmp, int target) { if (target == 0) { ret.push_back(tmp); return; } else{ int len = candidates.size(); for (int i = idx; i < len; i++) { if (target >= candidates[i]) { tmp.push_back(candidates[i]); combination(candidates, i, tmp, target - candidates[i]); tmp.pop_back(); }//if }//for }//else } private: vector<vector<int> > ret; };
GitHub测试程序源码
相关文章推荐
- 并发编程做法四:为了实现准确,高效锁
- LeetCode(39) Combination Sum
- 自己一些平常收集的用到的知识点和博客文章链接
- AFNetworking使用
- tcpdump安装以及基本使用
- pku2407
- JAVA找出4位数的所有吸血鬼数字
- WPF 多语言实现
- pku2407
- win7里设置VC6中的字体
- AWS中Centos创建后登录以及修改密码配置
- Ubuntu 14.04 13.10修改字符界面分辨率,字体大小
- Leetcode 1:Two Sum
- 第四周学习报告
- SQL查询之模糊查询
- A017-布局之FrameLayout
- 新闻的本质之我见
- C++学习日记(1)
- 无处不在的缓存机制与几何分形学
- Hibernate与MyBatis