题解 | #迷宫问题#有没有人帮我看看第四行的问题

迷宫问题

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

# 深度搜索dfs 会返回所有的路径,然后用一个数组保存这些路径,再找到最少的
def DFS(x,y):
    if x == row-1 and y == col - 1:
        temp.extend(route) #不知道 为什么temp.append(route)不行,只保存第一个项
        return 
    
    for i,j in [[0,-1],[0,1],[-1,0],[1,0]]:
        temp_x = x+i
        temp_y = y+j
        if temp_x in range(row) and temp_y in range(col) and maze[temp_x][temp_y] == '0':
            maze[temp_x][temp_y] = '1'
            temp1 = []
            temp1.append(temp_x)
            temp1.append(temp_y)
            route.append(temp1)
            DFS(temp_x,temp_y)
            maze[temp_x][temp_y] = '0'
            route.pop() 
    else:
        return         
    

row,col = [int(x) for x in input().split(' ')]
maze = []
temp = []
for i in range(row):
    maze.append([x for x in input().split(' ')])
route = [[0,0]]
DFS(0,0)

count = 1
res = temp
tag = 0
for i in range(1,len(temp)):
    if temp[i] == [0,0]:
        tag = i
        if count < len(res):
            res = temp[i-count:i]
        count = 1
    elif i == len(temp)-1:
        if i- tag +1 < len(res):
            res = temp[tag:]
    else:
        count += 1

for i in res:
    print(f"({i[0]},{i[1]})")


#悬赏#
全部评论
route(一个二位数组[[ ]])保存的是到达结尾是走过的路径,但不知道为什么list.append(route)的时候,只添加了第一个元素
点赞 回复 分享
发布于 2024-03-21 20:34 湖北

相关推荐

白火同学:先说结论,准大三不是特别好找实习,boss沟通300+没有实习是很正常的情况。一是暑期实习时间太短了,二是在这么多准大四都找不到实习,从实习时间和掌握技术层面,企业会优先看他们。 再说简历,其实985本+准大三到这水平的简历也很优秀了,要说的话,项目经历可以再优化一下,可以基本围绕采取STAR原则,分为项目概述、技术架构、技术亮点、实现结果,再发给AI润色一下。 最后说操作,准大三的话,如果想找实习那就多投,不过现在也7月中旬了,时间上已经略晚了。如果7月底实在找不到,也可以多刷点算法,多学点技术,这实习也不至于一定得有,当然有更好。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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