感谢茫茫人海中我们能够相遇,特别是这么优秀可爱的你还能来关注我,真的很感恩
俗话说:当你的才华和能力,不足以支撑你的梦想的时候,请静下心来学习。
希望优秀的你可以和我一起学习,一起努力,实现属于自己的梦想。
自己创建了一个公众号“爱敲代码的小黄”,小可爱可不可以给我点个关注,里面会有一些学习的资料和题主的一些技术文章,谢谢小可爱。
1. 题目描述
2. 题目分析
- 一开始题主看到这个题,有点懵,不知道该如何下手
- 想了想,可以直接暴力,循环每一个岛【grid[]i[j] == 1】
- 然后分别判断他的四周【上下左右】是否为0,为0的话,周长加一,最后返回结果
3. 题目代码
public int IslandPerimeter(int[][] grid)
{
if(grid == null || grid.Length == 0)
{
return 0;
}
int res = 0;
for (int i = 0; i < grid.Length; i++)
{
for(int j = 0; j < grid[0].Length; j++)
{
if(grid[i][j] == 1)
{
if(i == 0 || grid[i-1][j] == 0)
{
res++;
}
if(i == grid.Length - 1 || grid[i+1][j] == 0)
{
res++;
}
if(j == 0 || grid[i][j-1] == 0)
{
res++;
}
if(j == grid[0].Length - 1 || grid[i][j+1] == 0)
{
res++;
}
}
}
}
return res;
}