leetcode78子集

leetcode 78 Subsets

Posted by BY on September 20, 2020

前言

持续更新了

正文

问题来源

本问题来自leetcode上的78题。

问题描述

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)

示例 1:

输入: nums = [1,2,3]
输出:
[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

分析:

func subsets(nums []int) [][]int {
    res := make([][]int, 0)
    tmp := make([]int, 0)
    var dfs func(t int) 
    dfs = func(t int) {
        if t == len(nums) {
            tr := make([]int, len(tmp))
            copy(tr, tmp)
            res = append(res, tr)
            return
        }
        dfs(t+1)
        tmp = append(tmp, nums[t])
        dfs(t+1)
        tmp = tmp[:len(tmp)-1]
    }
    dfs(0)
    return res
}

总结:

勤思考。

结语

不管怎么样好好加油。