概述
给出一个拥有所有唯一元素的整数数组。其目的是返回该数组的幂集
Input: [1, 2]
Output: [[],[1],[2],[1,2]]
Input: [1, 2, 3]
Output: [[] [1] [2] [1 2] [3] [1 3] [2 3] [1 2 3]]
如果给定数组中的元素数为n,那么幂集中的元素数将是pow(2, n)。假设n是3,那么幂集中的元素数将是pow(2, n)=8。
假设我们把所有从0到(8-1)的二进制数字转换,即从0到7。
000
001
010
011
100
101
110
111
上面的每个二进制数都代表一个幂集
000 - []
001 - [1]
010 - [2]
011 - [1, 2]
100 - [3]
101 - [1, 3]
110 - [2, 3]
111 - [1, 2, 3]
程序
以下是相同的程序。
package main
import (
"fmt"
"math"
)
func subsets(nums []int) [][]int {
lengthNums := len(nums)
powerSetLength := int(math.Pow(2, float64(lengthNums)))
output := make([][]int, 0)
for i := 0; i < powerSetLength; i++ {
result := make([]int, 0)
for j := 0; j < lengthNums; j++ {
val := int(i) & int(1<
输出
[[] [1] [2] [1 2]] [[] [1] [2] [1 2] [3] [1 3] [2 3] [1 2 3]]