leetcode78.子集
最简单的回溯,选结果集3行,选枝剪枝3行
func subsets(nums []int) [][]int {
res:=[][]int{}
memo:=[]int{}
var backtrack func(start int)
backtrack=func(start int){
temp:=make([]int,len(memo))
copy(temp,memo)
res=append(res,temp)
for i:=start;i<len(nums);i++{
memo=append(memo,nums[i])
backtrack(i+1)
memo=memo[:len(memo)-1]
}
}
backtrack(0)
return res
}
Last updated