78. 子集

100 阅读1分钟

78. 子集

借用了 下面这道题的代码, for (var k = 1; k <= nums.length; k++) {分这么多情况,然后执行f(nums,k)

77. 组合

var subsets = function (nums) {
    var res = [[]]
    for (var k = 1; k <= nums.length; k++) {
        res = res.concat(f(nums,k))
    }
    return res
    function f(brr, k) {
        var len = brr.length
        var res = [];
        dfs(0, []);
        return res;
        function dfs(i, arr) {
            if (arr.length + (len - i) < k) return;
            if (arr.length == k) {
                res.push(arr);
                return;
            }
            dfs(i + 1, [...arr, brr[i]]);
            dfs(i + 1, arr);
        }
    };
};