# LeetCode - 0463. Island Perimeter
### 題目網址:https://leetcode.com/problems/island-perimeter/
###### tags: `LeetCode` `Easy`
```cpp=
/*
-LeetCode format-
Problem: 463. Island Perimeter
Difficulty: Easy
by Inversionpeter
*/
class Solution {
#define InRange(x, y) (0 <= x && x < grid[i].size() && 0 <= y && y < grid.size())
int dx[4] = { -1, 0, 1, 0 }, dy[4] = { 0, -1, 0, 1 };
public:
int islandPerimeter(vector<vector<int>>& grid) {
if (!grid.size())
return 0;
int perimeter = 0, land, newX, newY;
for (int i = 0; i != grid.size(); ++i)
for (int j = 0; j != grid[i].size(); ++j)
if (grid[i][j]) {
land = 0;
for (int k = 0; k < 4; ++k) {
newX = j + dx[k], newY = i + dy[k];
if (InRange(newX, newY) && grid[newY][newX])
++land;
}
perimeter += (4 - land);
}
return perimeter;
}
};
```