40. Combination Sum II
Posted zhuangbijingdeboke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了40. Combination Sum II相关的知识,希望对你有一定的参考价值。
1 class Solution 2 { 3 public: 4 vector<vector<int>> combinationSum2(vector<int>& candidates, int target) 5 { 6 vector<vector<int>> res; 7 vector<int> cur; 8 sort(candidates.begin(),candidates.end()); 9 helper(res,candidates,cur,target,0); 10 return res; 11 } 12 13 void helper(vector<vector<int>> &res,vector<int> &candidates,vector<int> &cur,int target,int index) 14 { 15 if(target<0) 16 return; 17 if(target==0) 18 { 19 res.push_back(cur); 20 return; 21 } 22 int sz=candidates.size(); 23 for(int i=index;i<sz;i++) 24 { 25 cur.push_back(candidates[i]); 26 helper(res,candidates,cur,target-candidates[i],i+1); 27 cur.pop_back(); 28 while(i+1!=sz&&candidates[i+1]==candidates[i]) 29 i++; 30 } 31 } 32 };
要注意排除重复元素,并且在下一次迭代时,从下一个元素的位置开始
以上是关于40. Combination Sum II的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 40 Combination Sum II(数组中求和等于target的所有组合)