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的主要内容,如果未能解决你的问题,请参考以下文章

40. Combination Sum II

LeetCode 40 Combination Sum II(数组中求和等于target的所有组合)

leetcode-Combination Sum II-40

40. Combination Sum II

40. Combination Sum II

40. Combination Sum II