463. Island Perimeter
food for thought
先理解,1個node有2個邊
2個node緊鄰會減少2個邊
所以我的解題思路為計算總共幾個node(N)、及計算有多少個鄰邊(M)
周長公式即為:N*4 - M*2
C++ solution
int islandPerimeter(vector<vector<int>>& grid)
{
int count_island = 0;
int count_adjacent = 0;
for (int i = 0; i < grid.size(); ++i)
for (int j = 0; j < grid[i].size(); ++j) if (grid[i][j])
{
++count_island;
if (i < grid.size()-1 && grid[i + 1][j])
++count_adjacent;
if (j < grid[i].size() -1 && grid[i][j+1])
++count_adjacent;
}
return count_island * 4 - count_adjacent * 2;
}