标签:turn 说明 div class 参考 tor pre 左右 cpp
class Solution {
public:
int islandPerimeter(vector<vector<int>>& grid) {
int num=0,edge=0;
for(int i=0;i<grid.size();++i){
for(int j=0;j<(*grid.begin()).size();++j){
if(grid[i][j]==1){
++num;
if(i+1!=grid.size()&&grid[i+1][j]==1) ++edge;
if(j+1!=(*grid.begin()).size()&&grid[i][j+1]==1) ++edge;
}
}
}
return 4*num-2*edge;
}
};
这个题是我参考了解答之后才正确做对的
想到的:
因为相邻边的俩个节点是相互的,比如A结点在B结点左边,有一条相邻边,那么B结点就在A结点右边。所以左右相邻只需要确定一个方向就好了
因此我们只需判断一个结点的右侧和下侧结点是不是与它相邻就好了。如果相邻,这说明也是‘1’
若当前结点在最右列或最下行时就不需要在找其右侧和下侧的结点,所以要加上判断条件是否是最右列或最下行
标签:turn 说明 div class 参考 tor pre 左右 cpp
原文地址:https://www.cnblogs.com/cs-niaocai/p/9108718.html