跳转至

LC78 - 子集

Subsets.go
package Backtrack

func subsets(nums []int) [][]int {
    result := make([][]int, 0)
    size := len(nums)
    path := make([]int, 0)
    var f func(int)
    f = func(i int) {
        if i == size {
            tmp := make([]int, len(path))
            copy(tmp, path)
            result = append(result, tmp)
            return
        }
        f(i + 1)
        path = append(path, nums[i])
        f(i + 1)
        path = path[:len(path)-1]
    }
    f(0)
    return result
}