代码如下:
package src
func Subsets(nums []int) [][]int {
var sets = make([][]int, 0)
var t = make([]int, 0)
sets = append(sets, t)
for i := 0; i < len(nums); i++ {
for _, v := range sets {
t = append(v, nums[i])
sets = append(sets, t)
}
}
return sets
}
测试数据长度小于等于 4 的时候一切正常,当长度大于 4,如 []int{1,2,3,4,5},一些计算好的数据会突然发生改变。
debug 的时候发现,刚开始 sets[15] 计算出来是 []int{1,2,3,4},但是当 sets[21] 计算结束,开始计算 sets[22] 的时候,sets[15] 会突然变成 []int{1,2,3,5}。
不知道是什么问题。