Game of Life LeetCode solution in Python

1
class Solution:
2
def gameOfLife(self, board: List[List[int]]) -> None:
3
r = len(board)
4
c = len(board[0])
5
ans = [[0] * c for _ in range(r)]
6
neighs = [[1, 0], [-1, 0], [0, 1], [0, -1], [-1, -1], [-1, 1], [1, 1], [1, -1]]
7

8
for i in range(r):
9
for j in range(c):
10
livecnt, deadcnt = 0, 0
11
for di, dj in neighs:
12
if 0 <= (i + di) < r and 0 <= (j + dj) < c:
13
if board[i + di][j + dj] == 0 or board[i + di][j + dj] == -1:
14
deadcnt += 1
15
else:
16
livecnt += 1
17
if board[i][j] == 0:
18
if livecnt == 3:
19
board[i][j] = -1
20
else:
21
if livecnt == 2 or livecnt == 3:
22
board[i][j] = 1
23
else:
24
board[i][j] = -2
25
for i in range(r):
26
for j in range(c):
27
if board[i][j] == -1:
28
board[i][j] = 1
29
elif board[i][j] == -2:
30
board[i][j] = 0

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0