岛屿周长,C++


在leetcode看了笨猪的题解,感觉很不错。

思路大致为定义land 和 border。

可以发现岛屿面积就是land *4+border *2,自己动手画画就知道了。

接下来我认为的关键就是如何计算border

当遇到了land时,检查它的右边和下边,看是否有land,

有的话border++。

遍历完二维数组返回周长

class Solution {
public:
    int islandPerimeter(vectorint>>& grid) {
        int land=0;
        int border=0;
        for(int i=0;i)
        {
            for(int j=0;j0].size();j++)
            {
                if(grid[i][j] == 1)
                {
                    land++;
                    if(i1 && grid[i+1][j]==1)\\注意边界
                    {
                        border++;
                    }
                    if(j0].size()-1 && grid[i][j+1]==1)\\边界
                    {
                        border++;
                    }
                }
               
            }
        }
        return land * 4 - border *2;
    }
};

相关