【leetcode】-463-岛屿的周长

    

对于一个陆地格子的上下左右四条边,它被算作岛屿的周长当且仅当这条边为网格的边界或者相邻的另一个格子为水域。不需要用深度搜索,因为只有一个岛。直接遍历二维数组,从四个方向上判断一下即可。

 int islandPerimeter(vector<vector<int>>& grid) {
        int n = grid.size();
        if (n==0) return 0;
        int m = grid[0].size();
        int res=0;
        for (int i = 0; i < n; i++) {//for循环开启遍历,防止联通分量遗漏
            for (int j = 0; j < m; j++) {
                if (grid[i][j] == 1)//每一个陆地格子
                 {
                    //上
                    if ((i-1>=0&&grid[i-1][j]==0)||i==0)res++;//相邻的格子是水域,或者是边界
                    //下
                    if((i+1<n&&grid[i+1][j]==0)||i==n-1)res++;
                    //左
                     if ((j-1>=0&&grid[i][j-1]==0)||j==0)res++;
                    //右
                     if ((j+1<m&&grid[i][j+1]==0)||j==m-1)res++;
                 }
            }
        }
        return res;
    }

猜你喜欢

转载自blog.csdn.net/qq_39328436/article/details/113736382
今日推荐