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; } };
|
子集问题是把树所有的节点收集起来,见下图:
从图中红线部分,可以看出遍历这个树的时候,把所有节点都记录下来,就是要求的子集集合。