分析
由于图是联通的,那么遇到边界或者湖时周长+1
class Solution {
public:
int islandPerimeter(vector<vector<int>>& grid) {
int n=grid.size(),m=grid[0].size();
int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
int ans=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(grid[i][j]){
for(int k=0;k<4;k++){
int x=i+dx[k],y=j+dy[k];
if(x<0||x>=n||y<0||y>=m||!grid[x][y])ans++;//遇到边界或者湖时周长+1
}
}
}
}
return ans;
}
};