Write a method that returns all subsets of a set.
和leetcode的Subsets一样。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<vector<int> > ans;
int len;
void dfs(int dep, vector<int> line, vector<int> num)
{
ans.push_back(line);
if(dep == len)
{
return;
}
else for(int i=dep; i<len; i++)
{
line.push_back(num[i]);
dfs(i+1, line, num);
line.pop_back();
}
}
vector<vector<int> > subsets(vector<int> S)
{
sort(S.begin(), S.end());
vector<int> line;
len= S.size();
dfs(0, line, S);
return ans;
}
int main()
{
int A[]= {1,2,3};
vector<int> S(A,A+3);
vector<vector<int> > a=subsets(S);
for(int i=0; i<a.size(); i++)
{
for(int j=0; j<a[i].size(); j++)
cout << a[i][j];
cout << endl;
}
return 0;
}