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