Idea
注意观察,每一个完整的方块,边长都是加4,一旦这个方块有其他的方块相邻的话,那么这两个方块总边长就要减少2.
因此我们遍历二维数组的时候,判断岛屿方块的上面还有左方是否有相邻即可
cpp
class Solution {
public:
int islandPerimeter(vector<vector<int>>& grid) {
int m = grid.size();
int n = grid[0].size();
int ans = 0;
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
if(grid[i][j]) {
ans += 4;
if(i - 1 >= 0 && grid[i - 1][j]) ans -= 2;
if(j - 1 >= 0 && grid[i][j - 1]) ans -= 2;
}
}
}
return ans;
}
};