题解 | 迷宫问题

迷宫问题

https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc

import sys
h,w=map(int,input().split())
#print(h)
maze=[list(map(int,input().split())) for _ in range(h)]
visited=[[False]*w for _ in range(h)]
#print(visited)
#print(maze)
path=[]
def dfs(x,y):
    if (not (x>=0 and x<h and y>=0 and y<w) or visited[x][y]==True or maze[x][y]!=0 ):
        #print(666)
        return False
    visited[x][y]=True
    path.append((x,y))
    #print(path)
    if (x==h-1 and y==w-1):
        return True
    for dx,dy in [(-1,0),(1,0),(0,1),(0,-1)]:
        #print(dx,dy)
        if(dfs(x+dx,y+dy)):
            return True
    path.pop()
    return False
dfs(0,0)
for x,y in path:
    print('(' + str(x) +','+str(y)+')')

DFS,这里的x,y我开始写反了。

这个算法很厉害,看了gpt的答案后才写出来的。

全部评论

相关推荐

想run的马里奥在学...:这个学历帮你扫平百分之80的障碍,投就完了,这会找不到就等3月暑期一样能找到
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务