78.子集
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
从图中红线部分,可以看出遍历这个树的时候,把所有节点都记录下来,就是要求的子集集合。class Solution {
private:
vector<vector<int>> result;
vector<int> path;
public:
void backtrace(vector<int>& nums, int cur){

result.push_back(path);

for(int i = cur; i < nums.size(); i++){
path.push_back(nums[i]);
backtrace(nums,i + 1);
path.pop_back();
}
}

vector<vector<int>> subsets(vector<int>& nums) {
backtrace(nums,0);
return result;
}
};

子集问题是把树所有的节点收集起来,见下图:

78.子集.png

从图中红线部分,可以看出遍历这个树的时候,把所有节点都记录下来,就是要求的子集集合