Combination Sum II LeetCode solution in C++

1
class Solution {
2
public:
3
vector<vector<int>> ans;
4
vector<int> temp;
5
void f(vector<int> &nums, int target, int i) {
6
if (target == 0) {
7
ans.push_back(temp);
8
return;
9
}
10
if (i >= nums.size()) return;
11
if (nums[i] <= target) {
12
temp.push_back(nums[i]);
13
f(nums, target - nums[i], i + 1);
14
temp.pop_back();
15
while (i < nums.size() - 1 && nums[i] == nums[i + 1]) i++;
16
f(nums, target, i + 1);
17
} else
18
f(nums, target, i + 1);
19
}
20
vector<vector<int>> combinationSum2(vector<int> &candidates, int target) {
21
sort(candidates.begin(), candidates.end());
22
f(candidates, target, 0);
23
return ans;
24
}
25
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0