伽马群岛由若干小岛构成,开发者在某些小岛间修建了水上通路,使得群岛大部分连通,但也不排除部分小岛仍为孤岛,创建伽马群岛的地图,例如: image.png 编写函数数一数该群岛共有多少个小岛。
时间: 2024-03-14 15:45:37 浏览: 34
好的,我理解了你的问题。这是一个图论问题,可以使用深度优先搜索或广度优先搜索来解决。以下是使用深度优先搜索的 Python 代码示例:
```python
def count_islands(map):
def dfs(i, j):
if i < 0 or i >= len(map) or j < 0 or j >= len(map[0]) or map[i][j] == 0:
return
map[i][j] = 0
dfs(i-1, j)
dfs(i+1, j)
dfs(i, j-1)
dfs(i, j+1)
count = 0
for i in range(len(map)):
for j in range(len(map[0])):
if map[i][j] == 1:
count += 1
dfs(i, j)
return count
```
其中,`map` 是一个二维数组,表示群岛地图,元素为 1 表示该位置是小岛,元素为 0 表示该位置是水域。函数首先定义了一个内部的深度优先搜索函数 `dfs`,用来遍历与当前小岛相连的所有小岛,并将它们标记为水域。然后,函数遍历整个地图,如果遇到一个未访问过的小岛,就将计数器加一,并调用 `dfs` 函数遍历与它相连的所有小岛。最终返回计数器的值,即小岛的个数。
你可以将你的地图表示成一个二维数组,然后将它作为参数传递给 `count_islands` 函数,即可得到小岛的数量。