HJ43 迷宫问题,为什么深拷贝之后改变e的值a中的值也会变

这是代码,在走回(2,0)走向(2,1)时列表a中记录路径的值会变(2,0)会变成(2,1)

from copy import deepcopy

x,y = map(int,input().split())

end = [x-1,y-1]

mx = []

start = [0,0]

for i in range(x):

    mx.append(list(map(int,input().split())))

a = [[0,0]]

def bfs(e,m,a):

    if e == end:

        return a

    if 0<=e[0]+1< x and m[e[0]+1][e[1]] == 0 and [e[0]+1,e[1]] not in a:        

        e[0]+=1

        a.append(deepcopy(e))

        bfs(e,m,a)

    elif  0<=e[0]-1 <x and m[e[0]-1][e[1]]== 0 and [e[0]-1,e[1]] not in a:

        e[0]-=1

        a.append(deepcopy(e))

        bfs(e,m,a)

    elif 0<=e[1]+1 < y and m[e[0]][e[1]+1]== 0 and [e[0],e[1]+1] not in a:        

        e[1]=e[1]+1

        a.append(deepcopy(e))

        bfs(e,m,a)

    elif 0<=e[1]-1 <y and m[e[0]][e[1]-1] == 0 and [e[0],e[1]-1] not in a:        

        e[1]-=1

        a.append(deepcopy(e))

        bfs(e,m,a)

    else:

        m[e[0]][e[1]] = 1

        a.pop()

        e = a[-1]

        bfs(e,m,a)

print(bfs(start,mx,a))

#悬赏#
全部评论

相关推荐

代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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