leetcode463. 岛屿的周长

分析

由于图是联通的,那么遇到边界或者湖时周长+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;
    }
};