给定一个整数数组 nums
,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
本题可以套用模版,使用深度优先搜索得到答案
func subsets(nums []int) [][]int {
var ans [][]int
var temp []int
length := len(nums)
var dfs func(k int)
dfs = func(k int){
ans = append(ans,append([]int{},temp...))
for i := k;i < length;i += 1{
temp = append(temp,nums[i])
dfs(i + 1)
temp = temp[:len(temp) - 1] // 回溯
}
}
dfs(0)
return ans
}
执行结果:
通过
执行用时:0 ms, 在所有 Go 提交中击败了100.00%的用户
内存消耗:2.2 MB, 在所有 Go 提交中击败了83.33%的用户
通过测试用例:10 / 10