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))

#悬赏#
全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 18:05
哈哈哈哈哈感觉朋友找工作的已经疯掉了,直接上图
码农索隆:真老板娘:“我嘞个去,这不我当年的套路吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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