核心逻辑:
根据子数组包含的元素个数迭代:
现有子集的基础上通过添加这个新元素来翻倍子集的数量 f(n)=2×f(n−1)
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> ans;
int i,j,k;
ans.push_back({});
for(i = 0; i < nums.size(); i++)
{
k = ans.size();
for(j = 0; j < k; j++)
{
vector<int> e = ans[j];
e.push_back(nums[i]);
ans.push_back(e);
}
}
return ans;
}