加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

40. Combination Sum II

发布时间:2020-12-14 03:21:48 所属栏目:大数据 来源:网络整理
导读:1 class Solution 2 { 3 public : 4 vectorvector int combinationSum2(vector int candidates, int target) 5 { 6 vectorvector int res; 7 vector int cur; 8 sort(candidates.begin(),candidates.end()); 9 helper(res,candidates,cur,target, 0 ); 10 re
 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,target-candidates[i],i+1);
27             cur.pop_back();
28             while(i+1!=sz&&candidates[i+1]==candidates[i])
29                 i++;
30         }
31     }
32 };

要注意排除重复元素,并且在下一次迭代时,从下一个元素的位置开始

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读