Fork me on GitHub

Subsets

Description

https://leetcode.com/problems/subsets/description/

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> ret(1, vector<int>());
vector<int> currentSet;
this->getSubset(ret, nums, currentSet, 0, nums.size() );
return ret;
}

void getSubset(vector<vector<int>>& ret, vector<int>& nums, vector<int>& currentSet, int index, int size) {
if (index >= size) return;
for (int i = index; i < size; i++) {
currentSet.push_back(nums[i]);
vector<int> newSet(currentSet);
ret.push_back(newSet);
this->getSubset(ret, nums, currentSet, i + 1, size);
currentSet.pop_back();
}
return;
}
};