求大家帮忙分析一下我这代码写的哪里出问题了,
刚开始学DFS不怎么会,
我debug了半小时也没发现问题,
但是运行结果不对。
灰常感谢!
题目在这:(也可访问链接)
我的代码:
lst = [[1] * 4 for _ in range(4)]
res = 0
def dfs(i, j):
global res
if lst[i][j] == 16:
res += 1
return
for dx, dy in [(0, 1), (0, -1), (1, 0), (-1, 0)]:
x = i + dx
y = j + dy
if 0 <= x < 4 and 0 <= y < 4 and lst[x][y] == 1:
lst[x][y] = lst[i][j] + 1
dfs(x, y)
lst[x][y] = 1
for i in range(4):
for j in range(4):
dfs(i, j)
print(res)
答案是500多,我运行出来3000多……
劳烦帮忙找一下问题所在,灰常感谢灰常感谢~