1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-11-14 01:49:41 +01:00
LeetCode/go/subsets.go
Matej Focko 370c61deb6
go: add «78. Subsets»
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-05-21 11:38:23 +02:00

29 lines
520 B
Go

package subsets
func subsets(nums []int) [][]int {
var sets [][]int
var subsetsRec func(int)
var runningSet []int
subsetsRec = func(i int) {
if i == len(nums) {
toAppend := make([]int, len(runningSet))
copy(toAppend, runningSet)
sets = append(sets, toAppend)
return
}
// Skip the current element
subsetsRec(i + 1)
// Include the current element
runningSet = append(runningSet, nums[i])
subsetsRec(i + 1)
runningSet = runningSet[:len(runningSet)-1]
}
subsetsRec(0)
return sets
}