LeetCode77:Combination.我在使用Golang编写递归算法时遇到了堆栈溢出问题

4ngedf3f  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(82)

LeetCode77:Combination.我在使用Golang编写递归算法时遇到了堆栈溢出问题,即使只是在如此小的规模上测试(3,2)。
这是我的代码:

package main

import (
    "fmt"
)

func combine1(n int, k int) [][]int {
    res := [][]int{}
    if k == 1 {
        for i := 1; i <= n; i++ {
            res = append(res, []int{i})
        }
        return res
    }
    //The k number contains the combination of digits n
    for _, combination := range combine1(n-1, k-1) {
        combination = append(combination, n)
        res = append(res, combination)
    }
    //The k number does not contain the combination of the number n
    for _, combination := range combine1(n-1, k) {
        res = append(res, combination)
    }
    return res
}

func main() {
    fmt.Println("运行")
    
    fmt.Println(combine1(3,2))
}

字符串
我已经检查了我的代码和逻辑很多次,一切似乎都正常?

flvlnr44

flvlnr441#

对不起,经过调试,我发现我的算法错过了第二个递归部分的极限。

//The k number does not contain the combination of the number n
if n>k{
    res = append(res, combine(n-1, k)...)//...表示将数组中的元素打散
}

字符串

相关问题