给出
2
-起点
3
-目标
1
-路径
0
-墙
要求使用递归函数查找从2
到3
的路径。
但是,由于我也使用了for
,所以我使用了递归,因此我不确定它是否可以算作递归函数。
buildPath(element, l)
查找元素并将其替换为2
。如果它的邻居值包含2
。clearPath(element, l)
查找元素并将其替换为0
,如果 未连接到目标索引。
我有以下代码:
l = [0, 0, 0, 0, 0]
[0, 2, 1, 1, 0]
[0, 1, 0, 0, 0]
[0, 1, 1, 3, 0]
[0, 0, 0, 0, 0]
def buildPath(element, l):
for i in range(len(l)):
for j in range(len(l[i])):
if element==l[i][j] and ((l[i-1][j] == 2) or (l[i+1][j] == 2) or (l[i][j-1] == 2) or (l[i][j+1] == 2)):
l[i][j] = 2
buildPath(element, l)
l[1][1] = 8
return None
def clearPath(element, l):
for i in range(len(l)):
for j in range(len(l[i])):
if element == l[i][j] and (l[i-1][j] + l[i+1][j] + l[i][j-1] + l[i][j+1] <= 2):
l[i][j] = 0
clearPath(element, l)
buildPath(1, l)
clearPath(2, l)
这是修改后的数组的样子:
[0, 0, 0, 0, 0]
[0, 8, 2, 0, 0]
[0, 2, 0, 0, 0]
[0, 2, 2, 3, 0]
[0, 0, 0, 0, 0]
如何将其转换为纯递归函数?