LeetCode 40. 组合总和 II
原题链接
中等
作者:
linux_2019
,
2019-09-29 08:09:24
,
所有人可见
,
阅读 959
C++ 代码
class Solution {
public:
vector<vector<int>> ans;
vector<int> path;
void dfs(vector<int> &a,int sum,int start)
{
if(sum<0 )return ;
if(sum==0) ans.push_back(path);
for(int i=start;i<a.size();i++)
{
if(i>start && a[i] ==a[i-1])
continue;
path.push_back(a[i]);
dfs(a,sum-a[i],i+1);
path.pop_back();
}
}
vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
sort(candidates.begin(),candidates.end());
dfs(candidates,target,0);
return ans;
}
};