[LeetCode]Combination Sum
2015-08-08 22:00
309 查看
题目
Number: 35Difficulty: Medium
Tags: Array, Backtracking
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,7and target
7,
A solution set is:
[code][7] [2, 2, 3]
题解
在数组中寻找和为目标值的所有组合。典型的回溯问题。
代码
[code]class Solution { public: vector<vector<int>> combinationSum(vector<int>& candidates, int target) { sort(candidates.begin(), candidates.end()); vector<vector<int> > res; vector<int> combination; combinationSum(candidates, target, res, combination, 0); return res; } private: void combinationSum(vector<int> &candidates, int target, vector<vector<int> > &res, vector<int> &combination, int begin) { if (!target) { res.push_back(combination); return; } for (int i = begin; i != candidates.size() && target >= candidates[i]; ++i) { combination.push_back(candidates[i]); combinationSum(candidates, target - candidates[i], res, combination, i); combination.pop_back(); } } };
相关文章推荐
- [LeetCode]Search Insert Position
- 命运赋-吕蒙正
- 什么是面向对象的程序设计语言?
- Hive0.14在left outer join多级连接中,执行计划生成BUG记录
- Surrounded Regions
- [LeetCode]Search for a Range
- 《机器学习》(Machine Learning)——Andrew Ng 斯坦福大学公开课学习笔记(三)
- Mac OS 安装Wget
- 重复操作放到循环中效率低
- DataNode上执行文件读写时报java.io.IOException: Bad connect ack with firstBadLink as 192.168.X.X错误解决记录
- HTML基础(一)
- 排序算法的C语言实现-希尔排序
- 屡战屡败,屡败屡战
- [LeetCode]Next Permutation
- 通过jacob操作office
- 2015第32周六
- JAVA学习篇--JSTL基金会
- 字符编码详解
- Hdfs本地短路读取文件
- 华为OJ(学英语)