01 Powerset
Using DFS
Last updated
Last updated
typedef vector<int> vi;
typedef vector<vi> vvi;
vvi res;
void getSubsets(const vi &nums, int i, vi &subset) {
if(i == nums.size())
res.push_back(subset);
else {
getSubsets(nums, i + 1, subset);
subset.push_back(nums[i]);
getSubsets(nums, i + 1, subset);
subset.pop_back();
}
}
vvi subsets(vi& nums) {
vi *subset = new vector<int>;
getSubsets(nums, 0, *subset);
delete subset;
return res;
}