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

40. 组合总和 II

时间:2020-03-17 23:55:47      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:continue   bin   void   cto   end   col   start   style   ons   

 1 class Solution 
 2 {
 3     vector<vector<int>> res;
 4     int sum = 0;
 5 public:
 6     void helper(vector<int>& nums, int start,int target, vector<int>& out)
 7     {
 8         if(sum == target)
 9         {
10             res.push_back(out);
11         }
12         
13         if(sum > target) return;
14 
15         for (int i = start; i < nums.size(); ++i)
16         {
17             //去重
18             if(i != start && nums[i] == nums[i - 1]) continue;
19 
20             out.push_back(nums[i]);
21             sum += nums[i];
22             helper(nums, i + 1,target,out);//每个数字在每个组合中只能使用一次,所以是 i+1 
23 
24             out.pop_back();
25             sum -= nums[i];
26         }
27     }
28 
29     vector<vector<int>> combinationSum2(vector<int>& nums, int target) 
30     {
31         vector<int> out;
32         sort(nums.begin(),nums.end());
33         helper(nums,0,target,out);
34         return res;
35     }
36 };

 

40. 组合总和 II

标签:continue   bin   void   cto   end   col   start   style   ons   

原文地址:https://www.cnblogs.com/yuhong1103/p/12514489.html

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