如何计算由表格文件输入的岛屿问题并举例
时间: 2024-03-21 22:39:30 浏览: 18
下面是一个使用 Python 语言实现的计算岛屿数量的例子:
```python
def count_islands(grid):
n, m = len(grid), len(grid[0])
count = 0
def dfs(i, j):
if i < 0 or i >= n or j < 0 or j >= m or grid[i][j] == '0':
return
grid[i][j] = '0'
dfs(i+1, j)
dfs(i-1, j)
dfs(i, j+1)
dfs(i, j-1)
for i in range(n):
for j in range(m):
if grid[i][j] == '1':
dfs(i, j)
count += 1
return count
```
这个例子中,我们使用深度优先搜索算法来遍历二维数组中的陆地,并将其标记为已访问。具体来说,我们从任意一个未访问的陆地开始遍历,每次遇到陆地时,将其标记为已访问并继续向上下左右四个方向遍历。当遇到海洋或数组边界时,停止遍历。
我们可以将输入数据存储在一个二维列表中,例如:
```python
grid = [
[1, 1, 0, 0, 0],
[1, 1, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 1, 1]
]
```
其中,数字 1 表示陆地,数字 0 表示海洋。使用上面的 `count_islands` 函数计算该二维列表中的岛屿数量:
```python
count = count_islands(grid)
print(count) # 输出:3
```
在上面的例子中,我们使用深度优先搜索算法来遍历二维数组中的陆地,并将其标记为已访问。具体来说,我们从任意一个未访问的陆地开始遍历,每次遇到陆地时,将其标记为已访问并继续向上下左右四个方向遍历。当遇到海洋或数组边界时,停止遍历。
在上面的例子中,二维列表中有三个岛屿,因此输出结果为 3。