解题思路:对于每一个空格首先增加4条边,对于每个空格如果,右方和下方都是1,则相应的总计边数减2(抵消的是两条边)
class Solution {
public:
int islandPerimeter(vector<vector<int>>& grid) {
int row=grid.size();
if(row==0)return 0;
int col=grid[0].size();
//vector<vector<int>> copy(grid);//复制一个
int count=0,num=0;
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
{
if(grid[i][j]==1)
{
num=4;
if(i+1<row&&grid[i+1][j]==1)
num=num-2;
if(j+1<col&&grid[i][j+1]==1)
num=num-2;
count+=num;
}
}
return count;
}
};