LC 0695 [M] Max Area of Island - ALawliet/algorithms GitHub Wiki

class Solution:
    def maxAreaOfIsland(self, grid: List[List[int]]) -> int:
        m, n = len(grid), len(grid[0])

        def dfs(r, c):
            if 0 <= r < m and 0 <= c < n and grid[r][c]:
                grid[r][c] = 0
                return 1 + dfs(r-1, c) + dfs(r, c+1) + dfs(r+1, c) + dfs(r, c-1)
            return 0

        maximum = 0
        for r in range(m):
            for c in range(n):
                 if grid[r][c] == 1:
                    maximum = max(maximum, dfs(r, c))
        return maximum