小编Joh*_*ohn的帖子

递归附加到切片不起作用

我正在尝试学习 Go,但我无法弄清楚为什么递归调用堆栈末尾的这段代码返回一个空切片,有什么帮助吗?也tmp并不甚至似乎在调试器中注册。

func main() {
    input := [3]int{4, 6, 7}
    // expected [[6,7],[4,6,7],[4,6],[4,7]]
    fmt.Println(findSubsequences(input))
}

func findSubsequences(nums [3]int) [][]int {
    res := [][]int{}
    list := []int{}
    findSubsequence(res, list, nums, 0)
    return res
}

func findSubsequence(res [][]int, list []int, nums [3]int, id int) [][]int {
    if len(list) > 1 {
        tmp := make([]int, len(list))
        copy(tmp, list)
        res = append(res, tmp)
    }
    var unique []int
    for i := id; i < len(nums); i++ {
        if id > 0 && nums[i] …
Run Code Online (Sandbox Code Playgroud)

go

3
推荐指数
1
解决办法
2528
查看次数

标签 统计

go ×1