subsets 2

 1 class Solution {
 2 public:
 3     vector<vector<int> > vec;
 4     void subsets(vector<int> &S,vector<int> &v, int start)
 5     {
 6         vec.push_back(v);
 7         for(int i=start;i<S.size();i++)
 8         {

 9             v.push_back(S[i]);
10             subsets(S,v,i+1);
11             v.pop_back();
12             while( i+1<S.size() && S[i] == S[i+1] ) i++;
13         }
14         return;
15     }
16     vector<vector<int> > subsetsWithDup(vector<int> &S) {
17         // Start typing your C/C++ solution below
18         // DO NOT write int main() function
19         sort(S.begin(),S.end());
20         vec.clear();
21         vector<int> v;
22         subsets(S, v, 0 );
23         return vec;
24         
25         
26     }
27 };

 

posted on 2013-09-03 14:57  jumping_grass  阅读(149)  评论(0)    收藏  举报

导航