class Solution {
public:
    /**
     * @param S: A set of numbers.
     * @return: A list of lists. All valid subsets.
     */
    vector<vector<int> > subsets (vector<int> &nums) {
        vector<vector<int>> result;
        if (nums.size() == 0) {
            result.push_back(vector<int>());

            return result;
        }
        vector <int> cur;
        dsfHelper(nums, result, cur, 0);
        return result;
    }
    void dsfHelper(vector<int> &nums, vector<vector<int>> &result, vector<int> &cur, int index) {
        result.push_back(cur);
        for (int i = index; i < nums.size(); i++) {
            cur.push_back(nums[i]);
            dsfHelper(nums, result, cur, i+1);
            cur.pop_back();
        }
    }
};

results matching ""

    No results matching ""