Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 2x 2x 2x 18x 10x 10x 8x 8x 8x 8x 2x 2x | export default function subsets(nums: number[]): number[][] {
const stack: number[] = []
const ans: number[][] = []
const dfs = (cur: number, nums: number[]) => {
if (cur === nums.length) {
ans.push(stack.slice())
return
}
stack.push(nums[cur])
dfs(cur + 1, nums)
// Backtracking
stack.pop()
dfs(cur + 1, nums)
}
dfs(0, nums)
return ans
}
|