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
|
class Solution { public: vector<vector<int>> combinationSum2(vector<int>& candidates, int target) { sort(candidates.begin(), candidates.end()); vector<vector<int>> ret; vector<int> cur_vec; combination_sum_recur(ret,candidates,target,0,cur_vec); return ret; } void combination_sum2_recur(vector<vector<int>> &ret, vector<int>& candidates, int target, int index, vector<int>& cur_vec) { if(target == 0) { ret.push_back(cur_vec); } else if(target > 0) { for(int i = index; i < candidates.size(); i++) { if(i-1 >= index && candidates[i-1] == candidates[i]) continue; cur_vec.push_back(candidates[i]); combination_sum_recur(ret,candidates,target-candidates[i],i+1,cur_vec); cur_vec.pop_back(); } } } };
|
近期评论