题目
来自力扣
思路
递归回溯法,每个元素都有选和不选两种结果,那么n个元素就有n^2种结果。
代码
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<int>item;//子集
vector<vector<int>>results;//结果集
results.push_back(item);
generate(0,nums,item,results);
return results;
}
private:
void generate(int i,vector<int>&nums,vector<int>&item,vector<vector<int>>&results)
{
if(i>=nums.size())
{
return;
}
item.push_back(nums[i]);
results.push_back(item);
generate(i+1,nums,item,results);
item.pop_back();
generate(i+1,nums,item,results);
}
};
结果
注意:
熟悉vector的常规操作。