Я пытаюсь подсчитать общее количество путей в сетке 20x20 (ProjectEuler # 15), используя отслеживание с возвратом. Я играл с ним, но ответ всегда отрицательный. Любая помощь будет принята с благодарностью (я знаю, что ее можно решить с помощью рекурсии или мемоизации, но я хочу решить ее с помощью отслеживания с возвратом)
def isvalid(maze,n,x,y):
if x<0 or y<0 or x>n or y>n :
return False
else: return True
def countPaths(maze,x,y,n,used,count):
if x==n-1 or y==n-1:
count+=1
return
if isvalid(maze,n,x,y):
used[x][y]=True
if (x+1<n and used[x+1][y]==False):
countPaths(maze,x+1,y,n,used,count)
if (x-1>0 and used[x-1][y]==False):
countPaths(maze,x-1,y,n,used,count)
if (y+1<n and used[x][y+1]==False):
countPaths(maze,x,y+1,n,used,count)
if (y-1>0 and used[x][y-1]==False):
countPaths(maze,x,y-1,n,used,count)
used[x][y]=False
return