-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0078.cpp
More file actions
21 lines (21 loc) · 697 Bytes
/
Copy path0078.cpp
File metadata and controls
21 lines (21 loc) · 697 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
private:
void pushSubsets(vector<int> const &nums, int start, int size, vector<int> currentSubset, vector<vector<int>> &s) {
if (currentSubset.size() == size) {
s.push_back(currentSubset);
return;
}
for (int i = start; i < nums.size(); i++) {
currentSubset.push_back(nums[i]);
pushSubsets(nums, i + 1, size, currentSubset, s);
currentSubset.pop_back();
}
}
public:
vector<vector<int>> subsets(vector<int> &nums) {
vector<vector<int>> s;
for (int size = 0; size <= nums.size(); size++)
pushSubsets(nums, 0, size, {}, s);
return s;
}
};