1
# Runtime: 1480 ms (Top 97.21%) | Memory: 14.1 MB (Top 13.08%)3
def getMaximumGold(self, grid):6
def visit(visited, i, j, gold_sum):8
if val == 0 or (i, j) in visited:9
answer[0] = max(answer[0], gold_sum)12
gold_sum_new = gold_sum + val13
visited_new = visited.union({(i, j)})16
visit(visited_new, i - 1, j, gold_sum_new)18
if j < len(grid[i]) - 1:19
visit(visited_new, i, j + 1, gold_sum_new)22
visit(visited_new, i + 1, j, gold_sum_new)24
visit(visited_new, i, j - 1, gold_sum_new)26
# choosing the starting points27
for i in range(len(grid)):28
for j in range(len(grid[i])):33
if grid[i - 1][j] != 0:38
if grid[i][j + 1] != 0:43
if grid[i + 1][j] != 0:48
if grid[i][j - 1] != 0: