leetcode78.子集
res是序号,res1是实际集合
class Solution { public: vector<int> nums1; vector<int> res,res1; vector<vector<int>> ans; void dfs(){ int i; if(res.size()==0){ ans.push_back(res); for(i=0;i<nums1.size();i++){ res.push_back(i); res1.push_back(nums1[i]); ans.push_back(res1); dfs(); res1.pop_back(); res.pop_back(); } }else if(res.size()==nums1.size()){ return; }else{ for(i=res[res.size()-1]+1;i<nums1.size();i++){ res.push_back(i); res1.push_back(nums1[i]); ans.push_back(res1); dfs(); res1.pop_back(); res.pop_back(); } } } vector<vector<int>> subsets(vector<int>& nums) { nums1=nums; dfs(); return ans; } };