Skip to content

Commit 5d3551c

Browse files
authored
Update number-of-islands.py
1 parent 2e965a5 commit 5d3551c

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

Python/number-of-islands.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ def dfs(grid, i, j):
8383

8484
# Time: O(m * n)
8585
# Space: O(m * n)
86+
import collections
87+
88+
8689
# bfs solution
8790
class Solution3(object):
8891
def numIslands(self, grid):
@@ -95,19 +98,17 @@ def bfs(grid, i, j):
9598
if grid[i][j] == '0':
9699
return False
97100
grid[i][j] ='0'
98-
q = [(i, j)]
101+
q = collections.deque([(i, j)])
99102
while q:
100-
new_q = []
101-
for r, c in q:
102-
for dr, dc in directions:
103-
nr, nc = r+dr, c+dc
104-
if not (0 <= nr < len(grid) and
105-
0 <= nc < len(grid[0]) and
106-
grid[nr][nc] == '1'):
107-
continue
108-
grid[nr][nc] = '0'
109-
new_q.append((nr, nc))
110-
q = new_q
103+
r, c = q.popleft()
104+
for dr, dc in directions:
105+
nr, nc = r+dr, c+dc
106+
if not (0 <= nr < len(grid) and
107+
0 <= nc < len(grid[0]) and
108+
grid[nr][nc] == '1'):
109+
continue
110+
grid[nr][nc] = '0'
111+
q.append((nr, nc))
111112
return True
112113

113114
count = 0

0 commit comments

Comments
 (0)