给定二维格子grid,上下左右相邻的1组成岛屿,求岛屿的最大面积。
class Solution(object):
def maxAreaOfIsland(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
m = len(grid)
n = len(grid[0])
def dfs(i,j):
if 0 <= i < m and 0 <= j <n and grid[i][j]:
grid[i][j] = 0
return 1 + dfs(i-1,j) + dfs(i+1,j) + dfs(i,j-1) + dfs(i,j+1)
return 0
area = [dfs(i,j) for i in range(m) for j in range(n) if grid[i][j] ]
return max(area) if area else 0