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] } }