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