78. 子集/C++

78. 子集/C++

class Solution {
private:
    vector<vector<int>> res;
    vector<int> vec;
    
    void generate(vector<int>& nums, int index){
        if(vec.size()<=nums.size())
            res.push_back(vec);
        for(int i=index;i<nums.size();++i){
            vec.push_back(nums[i]);
            generate(nums,i+1);
            vec.pop_back();
        }
    }
public:
    vector<vector<int>> subsets(vector<int>& nums) {
        res.clear();
        if(nums.empty())
            return res;
        
        vec.clear();
        generate(nums,0);
        return res;
    }
};