微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何计算递归 DFS 中特定单元格的数量

如何解决如何计算递归 DFS 中特定单元格的数量

我正在练习递归 DFS,我的棋盘上有一些车。我在以下条件下执行递归 DFS:

  • 如果一个单元格是车,我会递归地向上、向下、向左和向右移动
  • 如果一个单元格是空的,我会递归地朝让我到达那个单元格的方向前进,例如,如果我最终在那个单元格上升,我会继续上升,直到我碰到棋盘的边缘
def dfs(board,x,y,direction,n_rooks):
    if board[x][y] == ROOK:
        board[x][y] = VISITED
        n_rooks += 1
        if valid(board,x - 1,y):
            dfs(board,LEFT,n_rooks)
        if valid(board,x + 1,RIGHT,y - 1):
            dfs(board,y - 1,DOWN,y + 1):
            dfs(board,y + 1,UP,n_rooks)
    elif board[x][y] == EMPTY:
        board[x][y] = VISITED
        if direction == LEFT and valid(board,n_rooks)
        elif direction == RIGHT and valid(board,n_rooks)
        elif direction == DOWN and valid(board,n_rooks)
        elif direction == UP and valid(board,n_rooks)

valid 检查我是否留在板内。

问题:如何计算途中的车数?如您所见,我尝试使用参数 n_rooks,但无法将其传递到递归函数之外的外部作用域。我该怎么办?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。