Skip to content

78-子集

思路:回溯

ts
function subsets(nums: number[]): number[][] {
  const ret: number[][] = []
  const path: number[] = []

  // 回溯
  backtrack(0)

  return ret

  function backtrack(index: number) {
    ret.push([...path])

    for (let i = index; i < nums.length; i++) {
      const num = nums[i]

      path.push(num)
      backtrack(i + 1)
      path.pop()
    }
  }
}
function subsets(nums: number[]): number[][] {
  const ret: number[][] = []
  const path: number[] = []

  // 回溯
  backtrack(0)

  return ret

  function backtrack(index: number) {
    ret.push([...path])

    for (let i = index; i < nums.length; i++) {
      const num = nums[i]

      path.push(num)
      backtrack(i + 1)
      path.pop()
    }
  }
}