Number of Islands LeetCode solution in Python

1
# Runtime: 353 ms (Top 84.15%) | Memory: 28.7 MB (Top 5.01%)
2

3
seen = set()
4

5

6
def dfs(i, j, m, n, grid):
7
global seen
8
if i < 0 or i >= m or j < 0 or j >= n:
9
return
10
if (i, j) in seen:
11
return
12
seen.add((i, j))
13
if grid[i][j] == "1":
14
dfs(i, j + 1, m, n, grid)
15
dfs(i, j - 1, m, n, grid)
16
dfs(i + 1, j, m, n, grid)
17
dfs(i - 1, j, m, n, grid)
18

19

20
class Solution:
21
def numIslands(self, grid: List[List[str]]) -> int:
22
global seen
23
m = len(grid) # no of rows
24
n = len(grid[0]) # no of columns
25
count = 0
26
for i in range(m):
27
for j in range(n):
28
if (i, j) not in seen and grid[i][j] == "1":
29
dfs(i, j, m, n, grid)
30
count += 1
31
seen.clear()
32
return count

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0