不同岛屿的数量
创始人
2025-01-08 11:00:26
0

以下是一个解决方法的示例代码:

def count_islands(grid):
    if not grid:  # 如果网格为空,返回0
        return 0

    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] = -1  # 将访问过的岛屿标记为-1

        # 递归遍历岛屿的上下左右四个方向
        dfs(grid, i-1, j)
        dfs(grid, i+1, j)
        dfs(grid, i, j-1)
        dfs(grid, i, j+1)

    count = 0  # 记录岛屿数量

    for i in range(len(grid)):
        for j in range(len(grid[0])):
            if grid[i][j] == 1:
                count += 1
                dfs(grid, i, j)  # 对每个岛屿进行深度优先搜索遍历

    return count

# 示例输入
grid = [
    [1, 1, 0, 0, 0],
    [1, 1, 0, 0, 0],
    [0, 0, 1, 0, 0],
    [0, 0, 0, 1, 1]
]

print(count_islands(grid))  # 输出: 3

这个解决方法使用深度优先搜索(DFS)算法来遍历岛屿的每个格子。对于每个为1的格子,都进行一次深度优先搜索,将与其相连的所有格子标记为-1,表示已经访问过。同时,岛屿数量加1。最后,返回岛屿数量即可。

在示例输入中,有3个不同的岛屿,所以输出为3。

相关内容

热门资讯

1分钟实锤!智星德州菠萝辅助器... 1分钟实锤!智星德州菠萝辅助器(手机德州)好像真的是有挂(详细辅助玩家教你)亲,关键说明,智星德州菠...
8分钟实锤!德扑之星作弊(云扑... 8分钟实锤!德扑之星作弊(云扑克德州)好像有挂(详细辅助玩家教你)1、8分钟实锤!德扑之星作弊(云扑...
第十分钟实锤!德州之星辅助挂(... 第十分钟实锤!德州之星辅助挂(手机德州)总是是真的有挂(详细辅助细节方法);小薇(透视辅助)致您一封...
第4分钟实锤!德州ai辅助有用... 第4分钟实锤!德州ai辅助有用(德州app)切实真的有挂(详细辅助科技教程);1、上手简单,内置详细...
第6分钟实锤!智星德州菠萝(德... 第6分钟实锤!智星德州菠萝(德扑)果然真的有挂(详细辅助必备教程)1)智星德州菠萝辅助挂:进一步探索...
第5分钟实锤!德扑之星作弊(w... 第5分钟实锤!德扑之星作弊(wpk德州)果然是有挂(详细辅助必赢教程)1)德扑之星作弊辅助挂:进一步...
一分钟实锤!德州ai辅助有用(... 一分钟实锤!德州ai辅助有用(德扑ai)原来真的是有挂(详细辅助新版2025教程);1、打开软件启动...
第2分钟实锤!德扑之星作弊(来... 第2分钟实锤!德扑之星作弊(来玩德州)一直真的有挂(详细辅助玩家教程)1、上手简单,内置详细流程视频...
六分钟实锤!德州ai辅助软件(... 六分钟实锤!德州ai辅助软件(手机德州)其实有挂(详细辅助科技教程)1、玩家可以在德州ai辅助软件软...
3分钟实锤!德扑数据软件(德扑... 3分钟实锤!德扑数据软件(德扑之星)本来有挂(详细辅助攻略教程)进入游戏-大厅左侧-新手福利-激活码...