LeetCode 695 Max Area of Island - Implementation

The approach

DFS returns area of island. Track maximum.

function maxAreaOfIsland(grid): m, n = len(grid), len(grid[0]) maxArea = 0

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

for i in range(m):
    for j in range(n):
        if grid[i][j] == 1:
            maxArea = max(maxArea, dfs(i, j))
return maxArea

O(mn)O(m \cdot n) time.