classSolution:defmaxAreaOfIsland(self,grid: List[List[int]]) ->int: m, n =len(grid),len(grid[0]) maxArea =0#遍历矩阵for i inrange(m):for j inrange(n):#每次dfs,更新最大面积 maxArea =max(maxArea, self.dfs(grid, i, j))return maxAreadefdfs(self,grid,i,j):#递归终点(越界,或为0)if i <0or i >=len(grid)or j <0or j >=len(grid[0])or grid[i][j] ==0:return0#若为1 grid[i][j] =0#置0 #递归访问上下左右,并累加面积 area =1+ self.dfs(grid, i-1, j)+ self.dfs(grid, i+1, j)+ self.dfs(grid, i, j-1)+ self.dfs(grid, i, j+1)return area