leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0040.cpp (766B)
0 class Solution {
1 vector<vector<int>> res;
2 vector<int> crnt;
4 void rec(vector<int> &candidates, int target, int sum, int start = 0) {
5 if (sum == target)
6 res.push_back(crnt);
7 else if (sum < target) {
8 for (int i = start; i < candidates.size(); i++) {
9 if (i != start && candidates[i] == candidates[i - 1]) continue;
10 crnt.push_back(candidates[i]);
11 rec(candidates, target, sum + candidates[i], i + 1);
12 crnt.pop_back();
13 }
14 }
15 }
17 public:
18 vector<vector<int>> combinationSum2(vector<int> &candidates, int target) {
19 sort(candidates.begin(), candidates.end());
20 rec(candidates, target, 0);
21 return res;
22 }
23 };