写出来咯!
唯一不同的就是 收集结果集的时候不需要判断了,因为收集的是树形结构中的所有结点
同时注意,集合:是无序的。也就是 {1 ,2} == {2 , 1 }
所以只能还是从 i = startIndex 取。
class Solution {
public:
vector<int> path;
vector<vector<int>> res;
void backtracking(vector<int>& nums, int startIndex)
{
res.push_back(path); // 直接插入,加入每一个结点
for(int i = startIndex; i < nums.size(); i++)
{
path.push_back(nums[i]);
backtracking(nums, i + 1);
path.pop_back();
}
return;
}
vector<vector<int>> subsets(vector<int>& nums) {
backtracking(nums, 0);
return res;
}
};