题目:输入一个数组,输出所有子集
分析:每个数有选/不选2种,一共2^n种
答案:
class Solution {
private: vector<vector<int>> res;
public:
vector<vector<int>> subsets(vector<int>& nums) {
res.clear();
sort(nums.begin(),nums.end());
vector<int> temp;
dfs(nums,0,temp);
return res;
}
void dfs(vector<int>& nums, int level,vector<int> temp){
if (level == nums.size()){
res.push_back(temp);
return;
}
dfs(nums,level+1,temp);
temp.push_back(nums[level]);
dfs(nums,level+1,temp);
return;
}
};