矩阵岛屿python
时间: 2023-09-24 12:01:12 浏览: 117
python 实现 矩阵 课程设计 代码
矩阵岛屿是一个常见的计算机算法问题,通常用于解决图论和搜索相关的问题。在Python中,我们可以使用深度优先搜索(DFS)算法来解决矩阵岛屿问题。
首先,我们需要将矩阵表示为一个二维数组。每个元素可以通过0或1来表示,其中0表示水域,1表示陆地。我们需要遍历整个二维数组,当遇到1(表示陆地)时,就进行DFS搜索,找到与当前陆地相邻的所有陆地,将其标记为已访问,并继续搜索相邻的陆地。通过这样的遍历和搜索,我们可以计算出矩阵中的岛屿数量。
下面是一个简单的Python实现示例:
```python
def dfs(grid, i, j):
# 判断当前坐标是否越界或者已经访问过
if i < 0 or i >= len(grid) or j < 0 or j >= len(grid[0]) or grid[i][j] != 1:
return
# 标记当前坐标为已访问
grid[i][j] = '#'
# 搜索上下左右四个方向
dfs(grid, i - 1, j)
dfs(grid, i + 1, j)
dfs(grid, i, j - 1)
dfs(grid, i, j + 1)
def numIslands(grid):
count = 0
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j] == 1:
# 发现一个新的岛屿,进行DFS搜索
dfs(grid, i, j)
count += 1
return count
# 示例输入
grid = [
[1, 1, 0, 0, 0],
[1, 1, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 1, 1]
]
# 调用函数计算岛屿数量
islands = numIslands(grid)
print("岛屿数量为:", islands)
```
运行上述代码,输出结果为:岛屿数量为:3。表示给定的矩阵中有3个岛屿。这就是通过深度优先搜索算法来解决矩阵岛屿问题的一个简单实现。
阅读全文