/*
幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/power-set-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
*/
vector<vector<int>> ans;
void TraceBack(vector<int>& nums, vector<int>& temp, int length, int index) {
ans.push_back(temp);
for(int i = index; i < length; ++i) {
temp.push_back(nums[i]);
TraceBack(nums, temp, length, i + 1);
temp.pop_back();
}
}
vector<vector<int>> subsets(vector<int>& nums) {
vector<int> temp;
TraceBack(nums, temp, nums.size(), 0);
return ans;
}