All files / leetCode 0078.ts

100% Statements 12/12
100% Branches 2/2
100% Functions 2/2
100% Lines 12/12

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
}