leetcode-157周赛-5215黄金矿工
题目描述:
方法一:dfs
class Solution: def getMaximumGold(self, grid: List[List[int]]) -> int: maxx = 0 R, C = len(grid), len(grid[0]) def dfs(r, c, visited, count): nonlocal maxx count += grid[r][c] maxx = max(maxx, count) visited.add((r, c)) for nr, nc in [[r+1, c], [r, c+1], [r-1, c], [r, c-1]]: if 0 <= nr < R and 0 <= nc < C and grid[nr][nc] != 0 and (nr, nc) not in visited: dfs(nr, nc, visited, count) visited.remove((r, c)) count -= grid[r][c] for r in range(len(grid)): for c in range(len(grid[0])): if grid[r][c] != 0: dfs(r, c, set(), 0) return maxx