【无标题】

101. 孤岛的总面积

题目描述

给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格包围。孤岛是那些位于矩阵内部、所有单元格都不接触边缘的岛屿。

现在你需要计算所有孤岛的总面积,岛屿面积的计算方式为组成岛屿的陆地的总数。

输入描述

第一行包含两个整数 N, M,表示矩阵的行数和列数。之后 N 行,每行包含 M 个数字,数字为 1 或者 0。

输出描述

输出一个整数,表示所有孤岛的总面积,如果不存在孤岛,则输出 0。

输入示例
4 5
1 1 0 0 0
1 1 0 0 0
0 0 1 0 0
0 0 0 1 1
输出示例
1
提示信息

在矩阵中心部分的岛屿,因为没有任何一个单元格接触到矩阵边缘,所以该岛屿属于孤岛,总面积为 1。

数据范围:

1 <= M, N <= 50。

其他用例

10 10
0 1 0 0 0 1 0 0 0 1
0 0 1 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 1 0 1 0 1 0 0
0 0 1 1 1 1 1 0 1 1
0 1 0 0 1 1 1 0 0 0
0 0 0 1 0 1 0 0 0 0
0 0 1 0 1 0 1 1 0 0
1 1 1 1 0 1 0 0 0 0
0 0 1 0 0 1 1 1 1 0

答案:18

BFS实现 

  • BFS 函数

    • bfs(x, y, graph, visited):从坐标 (x, y) 开始进行广度优先搜索。

    • 首先将当前节点 (x, y) 标记为已访问(visited[x][y] = True),并初始

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值