# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @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