class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> ans;
vector<bool> flag(nums.size());
dfs(ans,nums,0,flag);
return ans;
}
void dfs(vector<vector<int>> &res,vector<int> num, int k,vector<bool>& flag){
if(k == num.size()) {
vector<int> tmp;
for(int i = 0;i<num.size();i++) {
if(flag[i]){
tmp.push_back(num[i]);
}
}
res.push_back(tmp);
return;
}else{
flag[k] = false;
dfs(res,num,k+1,flag);
flag[k] = true;
dfs(res,num,k+1,flag);
}
}
};
【回溯】leetcode.78.子集
最新推荐文章于 2024-04-03 21:33:28 发布