#54034: 95%python Memory Error 幫幫忙


shps104227hello@gmail.com (?)


from collections import deque

n = int(input())

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

grid = []

visited=[[False] * n for i in range(n)]

for i in range(n):

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

q = deque([(x,y)])

visited[x][y] = True

d = [(0,1),(0,-1),(1,0),(-1,0)]

ct = 1

while q:

    r,c = q.popleft()

    for dr,dc in d:

        nr = dr + r

        nc = dc + c

        if 0 <= nr < n and 0 <= nc < n and visited[nr][nc] == False and abs(grid[nr][nc] - grid[r][c]) <= 2:

            q.append((nr,nc))

            visited[nr][nc] = True           

            ct+=1

print(ct)

 

#54036: Re: 95%python Memory Error 幫幫忙


leeguanhan0909@gmail.com (李冠翰)


from collections import deque

n = int(input())

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

grid = []

visited=[[False] * n for i in range(n)]

for i in range(n):

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

q = deque([(x,y)])

visited[x][y] = True

d = [(0,1),(0,-1),(1,0),(-1,0)]

ct = 1

while q:

    r,c = q.popleft()

    for dr,dc in d:

        nr = dr + r

        nc = dc + c

        if 0 <= nr < n and 0 <= nc < n and visited[nr][nc] == False and abs(grid[nr][nc] - grid[r][c]) <= 2:

            q.append((nr,nc))

            visited[nr][nc] = True           

            ct+=1

print(ct)

 

給你看My code
減少記憶體有兩個方向
1.將拜訪過紀錄直接存在原二維陣列,少開一個visited
2.使用array.array取代傳統list,用法可以問AI