Island Perimeter

Island Perimeter

题目描述:

给定一个矩阵1表示陆地,0表示海洋,要求找到陆地的周长。

例子:

具体描述见LeetCode463

解题思路:

解题的思路是我们找到所有的1的格子的数量;并且在遍历过程中我们记录下当前格子上方以及左侧格子是否为1;为1即表示两个1之间相邻。根据记录下来的1的格子的数量和相邻的数量即可得到周长。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
int islandPerimeter(vector<vector<int>>& grid) {
int res = 0;
int repeat = 0;
for (int i = 0; i < grid.size(); i++){
for (int j = 0; j < grid[0].size(); j++){
if (grid[i][j] == 1){
res++;
if (i != 0 && grid[i - 1][j] == 1) repeat++;
if (j != 0 && grid[i][j - 1] == 1) repeat++;
}
}
}
return 4 * res - 2 * repeat;
}
};