Leetcode 78. 子集

思路 回溯法

使用回溯模板 1. 无返回值的递归函数 2.通常命名为backtracking 3. 参数依据题意来决定 4. if 终止条件{ 收集结果 return } for (集合内元素集){ 处理节点(将节点存到结果数组中) 递归函数 进行回溯操作 } return
最终实现
var res [][]int
func subsets(nums []int) [][]int {
res = make([][]int, 0)
backTracking([]int{}, nums, 0)
return res
}
func backTracking(temp []int, nums []int, start int) {
tmp := make([]int, len(temp))
copy(tmp, temp)
res = append(res, tmp)
for i := start; i < len(nums); i++ {
temp = append(temp, nums[i])
backTracking(temp, nums, i+1)
temp = temp[:len(temp)-1]
}
}

浙公网安备 33010602011771号