[LeetCode-695]最大岛屿面积
DFS 解法
class Solution:
dir = [(-1,0),(1,0),(0,-1),(0,1)]
def dfs(self,grid,x,y):
if x < 0 or x >= len(grid) or y < 0 or y >= len(grid[0]) or grid[x][y] != 1:
return 0
grid[x][y] = 0
ans = 1
for (dx,dy) in self.dir:
ans += self.dfs(grid,x+dx,y+dy)
return ans
def maxAreaOfIsland(self, grid: List[List[int]]) -> int:
ans = 0
for i in range(len(grid)):
for j in range(len(grid[0])):
ans = max(ans, self.dfs(grid,i,j))
return ans