forked from garvit-bhardwaj/Leetcode-Problems-Solutions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCombinationSumII.cpp
33 lines (29 loc) · 865 Bytes
/
CombinationSumII.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class Solution {
public:
vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
vector<vector<int>> ans;
vector<int> sum;
sort(candidates.begin(),candidates.end());
combination(candidates, target, sum, 0, ans);
return ans;
}
void combination(vector<int> & nums, int target, vector<int> &sum, int idx, vector<vector<int>>& ans)
{
if(target==0)
{
return ans.push_back(sum);
}
if(target<0)
{
return;
}
for(int i=idx;i<nums.size();i++)
{
if(i>idx && nums[i]==nums[i-1])
continue;
sum.push_back(nums[i]);
combination(nums,target-nums[i],sum,i+1,ans);
sum.pop_back();
}
}
};