标签:
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:
For example, given candidate set 2,3,6,7
and target 7
,
A solution set is: [7]
[2, 2, 3]
[Solution]
使用递归
1 vector<vector<int> > result; 2 vector<int> line; 3 vector<vector<int> > combinationSum(vector<int> &candidates, int target) 4 { 5 sort(candidates.begin(), candidates.end()); 6 combination(candidates, 0, 0, target); 7 return result; 8 } 9 10 void combination(vector<int> &candidates, int index, int sum, int target) 11 { 12 if (sum >= target) 13 { 14 if (sum == target) 15 result.push_back(line); 16 return; 17 } 18 19 for (int i = index; i < candidates.size(); i++) 20 { 21 line.push_back(candidates[i]); 22 combination(candidates, i, sum + candidates[i], target); 23 line.pop_back(); 24 } 25 }
[*leetcode 39] Combination Sum
标签:
原文地址:http://www.cnblogs.com/ym65536/p/4428009.html