Given a set of distinct integers, nums, return all possible subsets.

Note:
Elements in a subset must be in non-descending order.
The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,3], a solution is:

[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]

 

 1 class Solution {
 2 private:
 3     vector<vector<int> >ret;
 4 
 5 public:
 6     void dfs(int dep,int maxDep,vector<int> &num,vector<int> a,int start)
 7     {
 8         ret.push_back(a);
 9 
10         if(dep==maxDep)
11             return ;
12 
13         for(int i=start;i<num.size();i++)
14         {
15             vector<int> b(a);
16             b.push_back(num[i]);
17             dfs(dep+1,maxDep,num,b,i+1);
18         }
19     }
20 
21     vector<vector<int> > subsets(vector<int>& nums) {
22         sort(nums.begin(),nums.end());
23         ret.clear();
24         vector<int> a;
25         dfs(0,nums.size(),nums,a,0);
26 
27         return ret;
28     }
29 };

 

 

II:

Given a collection of integers that might contain duplicates, nums, return all possible subsets.

Note:
Elements in a subset must be in non-descending order.
The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,2], a solution is:

[
[2],
[1],
[1,2,2],
[2,2],
[1,2],
[]
]

 

 1 class Solution {
 2 private:
 3     vector<vector<int> >ret;
 4 public:
 5     void dfs(int dep,int maxDep,vector<int> &num,vector<int> a,int start)
 6     {
 7         
 8             ret.push_back(a);
 9 
10         if(dep==maxDep) return ;
11 
12         for(int i=start;i<num.size();i++)
13         {
14             if(i!=start&&num[i]==num[i-1]) continue;
15             vector<int> b(a);
16             b.push_back(num[i]);
17             dfs(dep+1,maxDep,num,b,i+1);
18         }
19 
20 
21     }
22     vector<vector<int>> subsetsWithDup(vector<int>& nums) {
23         sort(nums.begin(),nums.end());
24         ret.clear();
25         vector<int> a;
26         a.clear();
27         dfs(0,nums.size(),nums,a,0);
28         return ret;
29     }
30 };

 

posted on 2015-05-13 07:28  黄瓜小肥皂  阅读(115)  评论(0编辑  收藏  举报