Max Area of Island LeetCode solution in Python

1
class Solution:
2
def maxAreaOfIsland(self, grid: List[List[int]]) -> int:
3
if not grid:
4
return 0
5

6
maxArea = 0
7

8
for i in range(len(grid)):
9
for j in range(len(grid[0])):
10
if grid[i][j] == 1: # run dfs only when we find a land
11
maxArea = max(maxArea, self.dfs(grid, i, j))
12

13
return maxArea
14

15
def dfs(self, grid, i, j):
16
# conditions for out of bound and when we encounter water
17
if i < 0 or j < 0 or i >= len(grid) or j >= len(grid[0]) or grid[i][j] != 1:
18
return 0
19

20
maxArea = 1
21
grid[i][j] = "#" # this will act as visited set
22
maxArea += self.dfs(grid, i + 1, j)
23
maxArea += self.dfs(grid, i - 1, j)
24
maxArea += self.dfs(grid, i, j + 1)
25
maxArea += self.dfs(grid, i, j - 1)
26

27
return maxArea

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0