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

LeetCode--Combination Sum II

时间:2014-08-03 23:01:56      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   io   for   问题   ar   

思路:类似于上一题,但是加了一个index数组记录结果里面已经存放的元素索引,

用来判断当前的元素是否和上一个相同并且上一个是否使用过。

主要为了解决重复解的问题。

 1 class Solution {
 2 public:
 3     vector<vector<int> >ans;
 4     vector<vector<int> > combinationSum2(vector<int> &num, int target) {
 5         if(num.size() == 0)
 6             return ans;
 7         sort(num.begin(),num.end());
 8         vector<int> res;
 9         vector<int> index;
10         calSum(num,target,0,res,index);
11         return ans;
12     }
13     void calSum(vector<int> &num,int target,int s,vector<int> &res,vector<int> &index)
14     {
15         if(target < 0)
16             return;
17         if(target == 0)
18         {
19             ans.push_back(res);
20             return;
21         }
22         int i;
23         for(i = s ; i < num.size() ; ++i)
24         {
25             if(i >0 && index[index.size()-1] != i-1 && num[i] == num[i-1])
26                 continue;
27             index.push_back(i);
28             res.push_back(num[i]);
29             calSum(num,target-num[i],i+1,res,index);
30             res.pop_back();
31             index.pop_back();
32         }
33         return;
34     }
35 };

 

LeetCode--Combination Sum II,布布扣,bubuko.com

LeetCode--Combination Sum II

标签:style   blog   color   使用   io   for   问题   ar   

原文地址:http://www.cnblogs.com/cane/p/3888862.html

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