不過一開始忘記把 == 0 的情境拿掉了 XD
int islandPerimeter(int** grid, int gridSize, int* gridColSize){
int perimeter=0;
for (int i=0;i<gridSize; i++)
for (int j=0;j< *gridColSize; j++)
{
if (grid[i][j]==0)
continue;
if (grid[i][j]==1)
perimeter+=4;
if (i>0 && grid[i-1][j]==1)
{
perimeter-=2;
}
if (j>0 && grid[i][j-1]==1)
perimeter-=2;
}
return perimeter;
}
修一修可以寫到這麼短這樣。
int islandPerimeter(int** grid, int gridSize, int* gridColSize){
int perimeter=0;
for (int i=0;i<gridSize; i++)
for (int j=0;j< *gridColSize; j++)
if (grid[i][j]==1)
{
perimeter+=4;
if (i>0 && grid[i-1][j]==1)
perimeter-=2;
if (j>0 && grid[i][j-1]==1)
perimeter-=2;
}
return perimeter;
}
沒有留言:
張貼留言