RecursionError: maximum recursion depth exceeded in comparison

如果保证代码正确,可以直接看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)

你可能感兴趣的:(python,leecode)