岛屿的周长


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 4M

Author:
Problem type
Allowed languages
C, C++

🏝️ 岛屿周长

📝 题目描述

你被给定一个大小为 row x col 的二维网格 grid,用来表示一张地图,其中:

  • grid[i][j] = 1 表示陆地,
  • grid[i][j] = 0 表示水域。

网格中的格子是上下左右相邻连接的(不包括对角线)。整个网格被水域包围,并且网格中恰好有一个岛屿(即一个或多个相连的陆地格子)。

这个岛屿中没有"湖泊",也就是说岛屿内部的水域不会与岛屿外部的水域相连。

每个格子是一个边长为 1 的正方形。网格是矩形的,宽度和高度都不超过 100。

请计算这个岛屿的周长。

输入格式

第一行输入两个整数n,m,分别表示矩阵的行和列 从第二行开始到第n+1行,分别表示二进制矩阵的第i行的数据

输出格式

输出一个整数,表示岛屿周长


示例 1:

输入:

4 4
0 1 0 0
1 1 1 0 
0 1 0 0 
1 1 0 0

输出: 16 解释:如上图所示,岛屿的周长由 16 条黄色边组成。


示例 2:

输入:

1 1
1

输出: 4


示例 3:

输入:

1 2
1 0

输出:

4

约束条件:
  • row == grid.length
  • col == grid[i].length
  • 1 <= row, col <= 100
  • grid[i][j] 的取值为 01
  • 网格中恰好存在一个岛屿

Comments

There are no comments at the moment.