class Solution {
public:
vector<vector<int>> ans;
vector<vector<int>> subsets(vector<int>& nums)
{
vector<int> temp;
find(nums,ans,temp,0);
return ans;
}
void find(vector<int>& nums,vector<vector<int>>& ans,vector<int>& temp,int lenth)
{
ans.push_back(temp);
if(lenth==nums.size())
{
//ans.push_back(temp);
return ;
}
for(int i=lenth;i<nums.size();i++)
{
temp.push_back(nums[i]);
find(nums,ans,temp,i+1);
temp.pop_back();
}
return;
}
};
本文介绍了一个使用递归方法实现的子集生成算法。该算法通过不断扩展临时集合并将其加入到最终答案中来生成给定整数数组的所有可能子集。通过对每个元素的选择与跳过操作,确保了所有子集都被正确生成。
263

被折叠的 条评论
为什么被折叠?



