给定一个集合,求出这个集合的所有子集,比如:集合{1,2,3},子集为{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}。
解法一:递归void subsets(vector<vector<int>> &res, vector<int> &path,vector<int> &nums, int start)
{
res.push_back(path);
for (int i = start; i < nums.size(); ++i)
{
path.push_back(nums[i]);
subsets(res, path, nums, i + 1);
path.pop_back();
}
}
vector<vector<int>> subsets(vector<int>& nums)
{
vector<vector<int>> res;
vector<int> path;
subsets(res, path, nums, 0);
return res;
}
解法二:循环vector<vector<int>> subsets(vector<int>& nums)
{
vector<vector<int>> res = { {} };
for (int i = 0; i < nums.size(); ++i)
{
int size = res.size();
fo