【发布时间】:2020-06-08 20:45:52
【问题描述】:
我正在尝试将递归代码转换为迭代代码。任务是在网格中找到最大的区域(由单元组成的连接单元)。
代码引用自这里:https://www.geeksforgeeks.org/find-length-largest-region-boolean-matrix/ 我曾尝试使用堆栈和循环来替换递归,但它不起作用
这是我尝试过的代码,它无法重现与递归方法相同的结果。
我已经测试过
M = np.array([[0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [0, 1, 0, 0, 0], [0, 0, 0, 0, 2],[0, 0, 0, 1, 0],[0, 0, 3, 0, 0]])
def DFS(M, row, col, visited):
rowNbr = [-1, -1, -1, 0, 0, 1, 1, 1]
colNbr = [-1, 0, 1, -1, 1, -1, 0, 1]
# Mark this cell as visited
visited[row][col] = True
stack = []
for k in range(8):
if (isSafe(M, row + rowNbr[k],
col + colNbr[k], visited)):
stack.push(M[row][col])
row = row + rowNbr[k]
col = col + colNbr[k]
for k in range(8):
if (isSafe(M, row + rowNbr[k],
col + colNbr[k], visited)):
stack.push(M[row][col])
【问题讨论】:
-
您能否添加您的试用代码并指定“不工作”的含义?
-
我已经编辑了我的问题以包含代码
标签: python recursion iteration depth-first-search