如何计算递归 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 (将#修改为@)