78. Subsets
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums)
{
vector<vector<int> > v;
vector<int> temp;
int length = nums.size();
for(int i=1; i <= length; ++i)
{
Combination(nums.begin(), i, temp, v, nums.end());
}
v.push_back(temp);
return v;
}
void Combination(vector<int>::iterator it, int n, vector<int>& temp, vector<vector<int> >& v, vector<int>::iterator end)
{
if(n == 0)
{
v.push_back(temp);
return;
}
if(it == end)
return;
temp.push_back(*it);
Combination(it+1, n-1, temp, v, end);
temp.pop_back();
Combination(it+1, n, temp, v, end);
}
};