class Solution {
public:
vector<vector<int>> ans;
vector<vector<int>> subsets(vector<int>& nums) {
int nSize=nums.size();
function<void(vector<int>,int)> dfs=[&](vector<int>v,int n){
if(n==nSize-1){
ans.push_back(v);
v.push_back(nums[n]);
ans.push_back(v);
}
else{
dfs(v,n+1);
v.push_back(nums[n]);
dfs(v,n+1);
}
};
vector<int> v;
dfs(v,0);
return ans;
}
};
线性思维、每个数有选和不选两种可能、push_back里面不能嵌套v.push_back()