题目简述:给定的数组里面找出所有组合
这里的递归,就没有return 跳出的地方了,直接遍历所有可能性,整个树都递归完
var subsets = function (nums) {
let res = []
var backtrack = function (start, one) {
if (one.length <= nums.length) {
res.push([...one])
}
for (let i = start; i < nums.length; ++i) {
one.push(nums[i])
backtrack(i + 1, one)
one.pop()
}
}
backtrack(0, [])
return res
};
既然没有跳出的地方,那么就不需要if的判断了,最大的数组也就是nums的数组长度,直接删除if的判断,简洁代码
var subsets = function (nums) {
let res = []
var backtrack = function (start, one) {
res.push([...one])
for (let i = start; i < nums.length; ++i) {
one.push(nums[i])
backtrack(i + 1, one)
one.pop()
}
}
backtrack(0, [])
return res
};