#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param grid int整型二维数组
# @return int整型
#
class Solution:
def maxAreaIsland(self, grid: List[List[int]]) -> int:
# write code here
if not grid or not grid[0]:
return 0
n = len(grid)
m = len(grid[0])
mx = 0
# 外侧 遍历mxn 每个点,以此为dfs 搜素的起点 ,比较递归的返回值为1的个数
# 定义 dfs 遍历当前(x,y) 的周围
def dfs(grid, row, col):
# 过滤超出边界和为0 的
if row < 0 or row >= n or col < 0 or col >= m or grid[row][col] == 0:
return 0
grid[row][col] = 0 # 遍历过设置为0
count = 1
count += dfs(grid, row + 1, col)
count += dfs(grid, row - 1, col)
count += dfs(grid, row, col + 1)
count += dfs(grid, row, col - 1)
return count
for i in range(n):
for j in range(m):
if grid[i][j] == 1:
mx = max(mx, dfs(grid, i, j))
return mx