463. Island Perimeter
Input:
[[0,1,0,0],
[1,1,1,0],
[0,1,0,0],
[1,1,0,0]]
Output: 16
Explanation: The perimeter is the 16 yellow stripes in the image below:
int islandPerimeter(vector<vector<int>>& grid) { // time: O(m * n); space: O(1)
if (grid.empty() || grid[0].empty()) return 0;
int island = 0, neighbor = 0, m = grid.size(), n = grid[0].size();
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
if (grid[i][j] == 1) {
++island;
if (i < m - 1 && grid[i + 1][j] == 1) ++neighbor;
if (j < n - 1 && grid[i][j + 1] == 1) ++neighbor;
}
}
}
return 4 * island - 2 * neighbor;
}Last updated