mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 07:35:35 +08:00
@ -196,7 +196,51 @@ class Solution {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 其他语言版本
|
||||||
|
### Python
|
||||||
|
BFS solution
|
||||||
|
```python
|
||||||
|
class Solution:
|
||||||
|
def __init__(self):
|
||||||
|
self.dirs = [[0, 1], [1, 0], [-1, 0], [0, -1]]
|
||||||
|
|
||||||
|
def numIslands(self, grid: List[List[str]]) -> int:
|
||||||
|
m = len(grid)
|
||||||
|
n = len(grid[0])
|
||||||
|
visited = [[False]*n for _ in range(m)]
|
||||||
|
res = 0
|
||||||
|
for i in range(m):
|
||||||
|
for j in range(n):
|
||||||
|
if visited[i][j] == False and grid[i][j] == '1':
|
||||||
|
res += 1
|
||||||
|
self.bfs(grid, i, j, visited) # Call bfs within this condition
|
||||||
|
return res
|
||||||
|
|
||||||
|
def bfs(self, grid, i, j, visited):
|
||||||
|
q = deque()
|
||||||
|
q.append((i,j))
|
||||||
|
visited[i][j] = True
|
||||||
|
while q:
|
||||||
|
x, y = q.popleft()
|
||||||
|
for k in range(4):
|
||||||
|
next_i = x + self.dirs[k][0]
|
||||||
|
next_j = y + self.dirs[k][1]
|
||||||
|
|
||||||
|
if next_i < 0 or next_i >= len(grid):
|
||||||
|
continue
|
||||||
|
if next_j < 0 or next_j >= len(grid[0]):
|
||||||
|
continue
|
||||||
|
if visited[next_i][next_j]:
|
||||||
|
continue
|
||||||
|
if grid[next_i][next_j] == '0':
|
||||||
|
continue
|
||||||
|
q.append((next_i, next_j))
|
||||||
|
visited[next_i][next_j] = True
|
||||||
|
```
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||||
</a>
|
</a>
|
||||||
|
```
|
||||||
|
Reference in New Issue
Block a user