思路:每个数可选可不选。
class Solution {
public:
vector<vector<int>> res;
vector<int> tmp;
void dfs(int u, vector<int> nums)
{
if (u == nums.size()) //达到最大长度,返回
{
res.push_back(tmp);
return;
}
tmp.push_back(nums[u]);
dfs(u + 1, nums); //选择当前数的方案
tmp.pop_back();
dfs(u + 1, nums); //不选择当前数的方案
}
vector<vector<int>> subsets(vector<int>& nums) {
dfs(0, nums);
return res;
}
};