先上题目
思路:
前提(只存在一个小岛)
1.遍历数组,找出所有单位土地
2.分别计算所有单位土地的周长
3.计算总和
代码部分
class Solution {
public int islandPerimeter(int[][] grid) {
int i,j,temp,result=0;
for(i=0;i<grid.length;i++){
for(j=0;j<grid[0].length;j++){
if(grid[i][j]==1){
temp=onePerimeter(grid,i,j);
result+=temp;
}
}
}
return result;
}
public int onePerimeter(int[][] grid,int i,int j){
int perimeter=4;
if(i+1<grid.length && grid[i+1][j]==1){
perimeter--;
}
if(i-1>=0 && grid[i-1][j]==1){
perimeter--;
}
if(j-1>=0 && grid[i][j-1]==1){
perimeter--;
}
if(j+1<grid[0].length && grid[i][j+1]==1){
perimeter--;
}
return perimeter;
}
}