题目:
Given a set of distinct integers, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
Example:
Input: nums = [1,2,3] Output: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
与上题类似,不过k没有限制,k 可以是不大于元素个数的任何值,那么每次回溯的结果都要保存
代码如下:
class Solution {
public:
vector<vector<int> > res;
void backtrace(vector<int> &nums,vector<int> &comb,int begin)
{
res.push_back(comb);
for(int i = begin; i < nums.size(); i++)
{
comb.push_back(nums[i]);
backtrace(nums,comb,i+1);
comb.pop_back();
}
}
vector<vector<int>> subsets(vector<int>& nums) {
res.clear();
vector<int> comb;
backtrace(nums,comb,0);
return res;
}
};