您的位置:首页 > 其它

LeetCode: Combination Sum

2014-10-26 19:24 246 查看

题目

https://oj.leetcode.com/problems/combination-sum/

分析

DFS,之前总结过很多道同类型的题。

代码

class Solution
{
public:
vector<vector<int>> combinationSum(vector<int> &candidates, int target)
{
if (candidates.size() == 0)
return res;
this->candidates = candidates;
sort(this->candidates.begin(), this->candidates.end());
vector<int> solution;

DFS(solution, 0, target);

return res;
}
void DFS(vector<int> &solution, int start, int target)
{
if (target == 0)
res.push_back(solution);
else
{
for (int i = start; i < candidates.size() && candidates[i] <= target; i++)
{
solution.push_back(candidates[i]);
DFS(solution, i, target-candidates[i]);
solution.pop_back();
}
}
}
private:
vector<int> candidates;
vector<vector<int>> res;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: