题解 | #迷宫问题#

迷宫问题

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

python3

参考大佬视频

https://www.bilibili.com/video/BV1aM4y1M7sa?p=53&spm_id_from=333.880.my_history.page.click&vd_source=b778d4cfd0c0695092103876c2c090ab

如有冒犯马上删除

队列思路解题

from collections import deque
# 列出下一步可能走的方向
dirs = [
    lambda x,y: (x,y-1),
    lambda x,y: (x+1,y),
    lambda x,y: (x, y+1),
    lambda x,y: (x-1,y)
        ]
# 打印最短路径函数
def print_real(path):
    curNode = path[-1]
    real_path =[]
    while curNode[2]!= -1:
        real_path.append(curNode[0:2])
        curNode = path[curNode[2]]
    real_path.append(curNode[0:2])
    real_path.reverse()
    for i in real_path:
        print(f'({i[0]-1},{i[1]-1})')
#建立一个队列—现在所在位置出队,下一步进队
def maze_path_queue(x1,y1,x2,y2):
    path =[]
    queue = deque()
    queue.append((x1,y1,-1))
    while len(queue)>0:
        curNode = queue.pop()
        path.append(curNode)
        if curNode[0] == x2 and curNode[1] == y2:
            print_real(path)
        for dir in dirs:
            nexNode = dir(curNode[0],curNode[1])
            if maze[nexNode[0]][nexNode[1]] == 0:
                queue.append((nexNode[0],nexNode[1], len(path)-1))
                maze[nexNode[0]][nexNode[1]] = 2
# 将输入转换成一个四面都是墙的迷宫防止下一步越界
while True:
    maze = []
    try:
        n,m = map(int, input().split())
        for i in range(n):
            maze.append([int(i) for i in input().split()])
        for i in range(n):
            maze[i].insert(0, 1)
            maze[i].append(1)
        maze.insert(0, [1 for i in range(n + 2)])
        maze.append([1 for i in range(n + 2)])
        maze_path_queue(1,1,n,m)
    except:
        break


全部评论

相关推荐

等闲_:感觉有好多地方会被问穿,mysql存储向量这个方案问题应该很大的,如果深问的的话,为什么不用es,不用pg,不用mivus,分块策略是怎么做的,向量化是怎么向量化的,稠密向量还是稀疏向量,再深问余弦相似度,HSWM算法,Bm25算法,为什么不用混合检索或者Rank重排序优化?其他的项目不停机分库分表咋实现的,切库过程中数据有diff的话有没有补偿策略?既然有了分库分表了有没有碰到业务上不好优化的慢sql,让这个sql读从库?而且点评的话,最好自己压测过,要不这个数据也不好解释。现在就27的情况来看,很多同学已经有了中大厂实习,这个节点也会偏向这些有大厂实习的92同学,而且hc也不多,所以坚持海投吧
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

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