对应力扣78题,题目和我的代码都在下面
当输入为nums :=[]int{9,0,3,5,7}时中间有一步 append的双方为
[[] [7] [5] [7 5] [3] [7 3] [5 3] [7 5 3] [0] [7 0] [5 0] [7 5 0] [3 0] [7 3 0] [5 3 0] [7 5 3 0] [9] [7 9] [5 9] [7 5 9] [3 9] [7 3 9] [5 3 9]]
[7 5 3 9]
而添加之后的原数组集里的 [7 5 3 0]会变成 [7 5 3 9]
func subsets(nums []int) [][]int {
var ans [][]int
if len(nums)==0{
var arr []int
ans=append(ans,arr)
return ans
}
next:=subsets(nums[1:len(nums)])
ans=append(ans,next...)
for _,val:=range(next){
ans=append(ans,append(val,nums[0]))
}
return ans
}