码迷,mamicode.com
首页 > 其他好文 > 详细

40. Combination Sum II

时间:2018-07-10 14:39:36      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:push   nat   and   重复   ==   cto   元素   i++   int   

 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

标签:push   nat   and   重复   ==   cto   元素   i++   int   

原文地址:https://www.cnblogs.com/zhuangbijingdeboke/p/9288617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!