2
def maxAreaOfIsland(self, grid: List[List[int]]) -> int:8
for i in range(len(grid)):9
for j in range(len(grid[0])):10
if grid[i][j] == 1: # run dfs only when we find a land11
maxArea = max(maxArea, self.dfs(grid, i, j))15
def dfs(self, grid, i, j):16
# conditions for out of bound and when we encounter water17
if i < 0 or j < 0 or i >= len(grid) or j >= len(grid[0]) or grid[i][j] != 1:21
grid[i][j] = "#" # this will act as visited set22
maxArea += self.dfs(grid, i + 1, j)23
maxArea += self.dfs(grid, i - 1, j)24
maxArea += self.dfs(grid, i, j + 1)25
maxArea += self.dfs(grid, i, j - 1)