解题代码:
classSolution {
public:
intislandPerimeter(vector<vector<int>>& grid) {
int p=0,c=0;
for(int i=0;i<grid.size();i++){
for(intj=0;j<grid[0].size();j++){
if(grid[i][j]==1){
p+=4;
if(i!=0){
if(grid[i-1][j]==1)
c++;
}
if(j!=0){
if(grid[i][j-1]==1)
c++;
}
if(i!=grid.size()-1){
if(grid[i+1][j]==1)
c++;
}
if(j!=grid[0].size()-1){
if(grid[i][j+1]==1)
c++;
}
}
}
}
return p-c;
}
};
解题思路:
题目要求陆地的周长,因此就是需要求陆地总共的块数,用它的4倍减去跟其他陆地相邻的边界的数量。