LeetCode695 岛屿的最大面积(DFS)
class Solution:
def __init__(self):
self.tmp = 0
def maxAreaOfIsland(self, grid: 'List[List[int]]') -> 'int':
w = len(grid)
h =len(grid[0])
ans = 0
for i in range(w):
for j in range(h):
if grid[i][j] == 1:
self.tmp = 0
self.dfs(grid, i, j)
ans = max(ans, self.tmp)
return ans
def dfs(self, grid, x, y):
if x<0 or y<0 or x>len(grid)-1 or y>len(grid[0])-1 or grid[x][y]!=1:
return
grid[x][y] = -1
self.tmp += 1
self.dfs(grid, x, y+1)
self.dfs(grid, x, y-1)
self.dfs(grid,x-1, y)
self.dfs(grid,x+1, y)