/*
* @lc app=leetcode.cn id=78 lang=javascript
*
* [78] 子集 背模板,回溯
*/
// @lc code=start
/**
* @param {number[]} nums
* @return {number[][]}
*/
var subsets = function (nums) {
let result = []
function backtrack(start, curr) {
result.push([...curr])
for (let i = start; i < nums.length; i++) {
// 1.将其push进去
curr.push(nums[i])
// 2.递归调用
backtrack(i + 1, curr)
// 3.把数组的最后一位删除
curr.pop()
}
}
// 调用函数从0开始,把空数组push进去
backtrack(0, [])
return result
}
// @lc code=end