ZBLOG

var result int var visited [][]bool func digit(x int) int { check := 0 for x != 0 { check += x % 10 x /= 10 } return check } func DFS(i, j, cnt, m, n int) { visited[i][j] = true // 向右 if i + 1 < m { ...

代码看起来没有明显的问题。它实现了一个深度优先搜索(DFS)算法,在给定条件下遍历并计数符合要求的路径。

然而,这个函数可能会导致索引越界错误。在 DFS 函数中,你需要添加一些边界条件的检查,以确保不会超出二维数组 visited 的范围。

修改后的代码如下:

var result int
var visited [][]bool

func digit(x int) int {
    check := 0
    for x != 0 {
        check += x % 10
        x /= 10
    }
    return check
}

func DFS(i, j, cnt, m, n int) {
    visited[i][j] = true
    
    // 向右
    if i+1 < m && !visited[i+1][j] && digit(i+1)+digit(j) <= cnt {
        result++
        DFS(i+1, j, cnt, m, n)
    }
    
    // 向下
    if j+1 < n && !visited[i][j+1] && digit(i)+digit(j+1) <= cnt {
        result++
        DFS(i, j+1, cnt, m, n)
    }
}

func wardrobeFinishing(m int, n int, cnt int) int {
    result = 0
    
    visited = make([][]bool, m)
    for i := range visited {
        visited[i] = make([]bool, n)
    }
    
    DFS(0, 0, cnt, m, n)
    
    return result
}

这样修改后,代码应该可以正确运行,并返回符合要求的路径数量。请记得在调用 wardrobeFinishing 函数时传入合适的参数。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=16804

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?