class Solution {
public:
void DFS(vector<vector<int>> &result,vector<int> &intermediate,int gap,int start,vector<int> &nums)
{
if (gap == 0)
result.push_back(intermediate);
for (size_t i = start; i < nums.size(); i++)
{
if (gap < nums[i])
return;
intermediate.push_back(nums[i]);
DFS(result, intermediate, gap - nums[i], i, nums);
intermediate.pop_back();
}
}
vector<vector<int> > combinationSum(vector<int> &candidates, int target)
{
sort(candidates.begin(), candidates.end());
vector<vector<int>> result;
vector<int> intermediate;
DFS(result, intermediate, target,0, candidates);
return result;
}
};
【LeetCode】Combination Sum
最新推荐文章于 2019-05-21 16:08:00 发布