题目描述如下:
给定一个非空的二维数组grid,由0和1组成,岛屿是一组1(表示陆地),在4个方向上(水平或垂直)连通。您可以假设网格的四个边都被水包围。
在给定的2D数组中找到最大岛屿的面积。(如果没有岛屿,则最大面积为0。)
class Solution:
def maxAreaOfIsland( self, grid: List[List[int]]) -> int:
a = len(grid)
for x in range(0, a):
b = len(grid[x])
for y in range(0 , b):
if grid[x][y] == "1":
self.dfs(grid , x , y)
return count
def dfs(self,grid, i, j):
count = 0
if i < 0 or i >= len(grid) or j < 0 or j >= len(grid[0]) or grid[i][j] == "0" or grid[i][j] == "2":
return
grid[i][j] = "2"
count += 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)
我尝试使用深度优先搜索方法查找邻居。但是,当发现"1"时如何正确增加计数以及输出总计数的方法让我无从下手。