现在有一个没有重复元素的整数集合S,求S的所有子集
注意:
你给出的子集中的元素必须按升序排列
给出的解集中不能出现重复的元素
思路:把前一个元素的所有集合带上这个元素,然后再加上之前所有的集合,就是当前这个位置所有的集合
package main
/**
*
* @param A int整型一维数组
* @return int整型二维数组
*/
func subsets( A []int ) [][]int {
// write code here
var set [][]int
var subSet []int
subSet = append(subSet, A[0])
set = append(set, subSet)
for i := 1; i < len(A); i++ {
num := len(set)
for j := 0; j < num; j++ {
var subSet []int
subSet = append(subSet, set[j]...)
subSet = append(subSet, A[i])
set = append(set, subSet)
}
var subSet []int
subSet = append(subSet, A[i])
set = append(set, subSet)
}
set = append(set, []int{})
return set
}