Leetcode78. Subsets子集

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

说明:解集不能包含重复的子集。

示例:

输入: nums = [1,2,3] 输出: [ [3],   [1],   [2],   [1,2,3],   [1,3],   [2,3],   [1,2],   [] ]

class Solution {
public:
    vector<vector<int> >res;
    int len;
    vector<vector<int> > subsets(vector<int>& nums) {
        len = nums.size();
        if(len == 0)
            return res;
        vector<int> v;
        DFS(0, v, nums);
        return res;
    }

    void DFS(int pos, vector<int> &v, vector<int> nums)
    {
        res.push_back(v);
        if(pos >= len)
            return;
        for(int i = pos; i < len; i++)
        {
            v.push_back(nums[i]);
            DFS(i + 1, v, nums);
            v.pop_back();
        }
    }
};
原文地址:https://www.cnblogs.com/lMonster81/p/10433857.html