Max area of island
class Solution:
def maxAreaOfIsland(self, grid: List[List[int]]) -> int:
dirs = [[0,1],[1,0],[0,-1],[-1,0]]
ROW = len(grid)
COL = len(grid[0])
VISITED = -1
area = []
def isValidPosition(x, y):
return x >= 0 and y >= 0 and x < ROW and y < COL and grid[x][y] == ISLAND
def dfs(x, y):
grid[x][y] = VISITED
count = 1
for dx, dy in dirs:
nx, ny = x+dx, y+dy
if isValidPosition(nx, ny):
count += dfs(nx,ny)
return count
for r in range(ROW):
for c in range(COL):
if grid[r][c] == ISLAND:
count1 = dfs(r, c)
area.append(count1)
if not area:
return 0
else: return max(area)