1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| package main
import "fmt"
func subsets(nums []int) [][]int { result := [][]int{} backtrack(nums, []int{}, &result, 0) return result }
func backtrack(nums, current []int, result *[][]int, start int) { temp := make([]int, len(current)) copy(temp, current) *result = append(*result, temp)
for i := start; i < len(nums); i++ { current = append(current, nums[i]) backtrack(nums, current, result, i+1) current = current[:len(current)-1] } }
func main() { nums := []int{1, 2, 3}
result := subsets(nums)
fmt.Println("所有可能的子集:", result) }
|