首页 > HJ43 迷宫问题,为什么深拷贝之后改变e的值a中的值也会变
头像
牛客912751243号
发布于 08-24 21:14 北京
+ 关注

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

全部评论

(0) 回帖
加载中...
话题 回帖

近期热帖

近期精华帖

热门推荐