032_子集

知识点:回溯算法

LeetCode第七十八题:https://leetcode-cn.com/problems/subsets/solution/

语言:GoLang

// 回溯
func subsets(nums []int) [][]int {
    ans := [][]int{}
    backtrack(nums, []int{}, &ans)
    return ans
}

func backtrack(nums []int, track []int, ans *[][]int) {
    tmp := make([]int, len(track))
    copy(tmp, track)
    *ans = append(*ans, tmp)

    for i := 0; i < len(nums); i++ {
        track = append(track, nums[i])
        backtrack(nums[i+1:], track, ans)
        track = track[:len(track) - 1]
    }
}
posted @ 2020-03-22 17:09  Cenyol  阅读(55)  评论(0)    收藏  举报