# 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; } }; ```