leetcode_78

淳属虚构 · · 508 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Golang:

思路:递归加回溯,emmm,就是在选择第n个时,可以选择nums[n],也可以选择空(即不填入),惭愧,这题是看了题解才理解的,太菜了。

代码如下:

func subsets(nums []int) [][]int {
    var res [][]int
    if len(nums)==0 {
        return res
    }
    var temp []int
    getSubsets(&res,nums,&temp,0)
    return res
}
func getSubsets(res *[][]int,nums []int,temp *[]int,n int){
    if n==len(nums) {
        cop:=make([]int,len(*temp))
        copy(cop,*temp)
        *res= append(*res, cop)
        return
    }
    *temp= append(*temp, nums[n])
    getSubsets(res,nums,temp,n+1)
    temp2:=*temp
    temp2=temp2[:len(temp2)-1]
    *temp= temp2
    getSubsets(res,nums,temp,n+1)
}

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:淳属虚构

查看原文:leetcode_78

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

508 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传