题解 | #迷宫问题#

迷宫问题

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

m, n = map(int, input().split())
maze = []
for i in range(m):
    maze.append(list(map(int, input().split())))

# dirs = [
#     lambda x,y: (x+1, y),
#     lambda x,y: (x-1, y),
#     lambda x,y: (x, y+1),
#     lambda x,y: (x, y-1)
# ]
# 上述dir方法等同于:
def ne_point(x,y):
    return [(x, y+1),(x+1, y),(x, y-1),(x-1, y)]

def maze_path(x1, y1, x2, y2): #开始坐标和结束坐标
    stack = []
    stack.append((x1,y1))
    while stack:
        cur_point = stack[-1]
        if cur_point[0] == x2 and cur_point[1] == y2:  #当前节点是最后一个点的坐标时候,证明找到了家
            for p in stack:
                print('(' + str(p[0]) + ',' + str(p[1]) + ')')
            return True
        for next_point in ne_point(cur_point[0],cur_point[1]):
            if (0 <= next_point[0] <= m-1) and (0 <= next_point[1] <= n-1):   #保证索引没有越界
                if maze[next_point[0]][next_point[1]] == 0:    # 找到了下一个可以走的节点
                    stack.append(next_point)         # 入栈
                    maze[next_point[0]][next_point[1]] = 2  #标记为已遍历
                    break     # 终止for循环,while循环不影响
        else:
            stack.pop()   #当前节点出栈
            maze[cur_point[0]][cur_point[1]] = 2 # 将当前节点标记为已遍历
    else:
        # 证明stack为空,也就说没有找到家,死胡同
        return False

maze_path(0, 0, m-1, n-1)

全部评论

相关推荐

06-27 12:54
已编辑
门头沟学院 Java
累了,讲讲我的大学经历吧,目前在家待业。我是一个二本院校软件工程专业。最开始选专业是觉得计算机感兴趣,所以选择了他。本人学习计算机是从大二暑假结束开始的,也就是大三开始。当时每天学习,我个人认为Java以及是我生活的一部分了,就这样持续学习了一年半,来到了大四上学期末,大概是在12月中旬,我终于找的到了一家上海中厂的实习,但我发现实习生的工作很枯燥,公司分配的活也不多,大多时间也是自己在自学。就这样我秋招末才找到实习。时间来到了3月中旬,公司说我可以转正,但是转正工资只有7000,不过很稳定,不加班,双休,因为要回学校参加答辩了,同时当时也是心高气傲,认为可以找到更好的,所以放弃了转正机会,回学校准备论文。准备论文期间就也没有投递简历。然后时间来到了5月中旬,这时春招基本也结束了,然后我开始投递简历,期间只是约到了几家下场面试。工资也只有6-7k,到现在我不知道该怎么办了。已经没有当初学习的心劲了,好累呀,但是又不知道该干什么去。在家就是打游戏,boss简历投一投。每天日重一次。26秋招都说是针对26届的人,25怎么办。我好绝望。要不要参加考公、考研、央国企这些的。有没有大佬可以帮帮我。为什么感觉别人找工作都是顺其自然的事情,我感觉自己每一步都在艰难追赶。八股文背了又忘背了又忘,我每次都花很长时间去理解他,可是现在感觉八股、项目都忘完了。真的已经没有力气再去学习了。图片是我的简历,有没有大哥可以指正一下,或者说我应该走哪条路,有点不想在找工作了。
码客明:太累了就休息一下兄弟,人生不会完蛋的
如果实习可以转正,你会不...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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