class Solution(object):
def dfs(self, grid,i,j):
#设定边界条件
if i<0 or j<0 or i==len(grid) or j==len(grid[0]) or grid[i][j]!=1:
return 0
#对于已经找的岛屿,标记一下,以防止重复查找
grid[i][j] = 2
#递归的寻找上下左右是否存在岛屿
return self.dfs(grid,i-1,j)+self.dfs(grid,i,j-1)+self.dfs(grid,i+1,j)+self.dfs(grid,i,j+1)+1
def maxAreaOfIsland(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
max_area = 0
for i in range(len(grid)):
for j in range(len(grid[0])):
temp = self.dfs(grid,i,j)
if max_area < temp:
max_area = temp
return max_area