如果保证代码正确,可以直接看Python递归深度错误:RecursionError: maximum recursion depth exceeded in comparison
策略简单陈述,就是扩大python内置的一个递归深度:
import sys
sys.setrecursionlimit(9000000) #这里设置大一些
我这里遇到的是因为代码本身有问题,这提示我,在递归的时候,一定要仔细检查递归体,别是自己写的和我一样是无限递归(奇异博士的赶脚)
def dfs(x,y):
if 0<=x<row and 0<=y<col and grid[x][y] == '1':
grid[x][y] = '0'
dfs(x, y+1)
dfs(x, y-1)
dfs(x-1 ,y)
dfs(x+1, y)
无论条件是否成立,都会一直递归,正确的应该是
def dfs(x,y):
if 0<=x<row and 0<=y<col and grid[x][y] == '1':
grid[x][y] = '0'
dfs(x, y+1)
dfs(x, y-1)
dfs(x-1 ,y)
dfs(x+1, y)