0463. Island Perimeter

463. Island Perimeter #

Problem #

You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represents water.

Grid cells are connected horizontally/vertically (not diagonally). The grid is completely surrounded by water, and there is exactly one island (i.e., one or more connected land cells).

The island doesn’t have “lakes” (water inside that isn’t connected to the water around the island). One cell is a square with side length 1. The grid is rectangular, width and height don’t exceed 100. Determine the perimeter of the island.

Example:

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:

Summary #

Given a two-dimensional grid map containing 0 and 1, where 1 represents land and 0 represents water.

Cells in the grid are connected horizontally and vertically (not diagonally). The entire grid is completely surrounded by water, but there is exactly one island (that is, an island formed by one or more connected land cells).

There are no “lakes” in the island (“lakes” refer to water inside the island that is not connected to the water around the island). Each cell is a square with side length 1. The grid is rectangular, and both its width and height do not exceed 100. Calculate the perimeter of this island.

Solution Approach #

  • Given a two-dimensional array, there are some connected 1s in the array, forming an island. Find the perimeter of this island.
  • This is an easy problem. Just check the conditions of the four surrounding boundaries and add one accordingly.

Code #


package leetcode

func islandPerimeter(grid [][]int) int {
	counter := 0
	for i := 0; i < len(grid); i++ {
		for j := 0; j < len(grid[0]); j++ {
			if grid[i][j] == 1 {
				if i-1 < 0 || grid[i-1][j] == 0 {
					counter++
				}
				if i+1 >= len(grid) || grid[i+1][j] == 0 {
					counter++
				}
				if j-1 < 0 || grid[i][j-1] == 0 {
					counter++
				}
				if j+1 >= len(grid[0]) || grid[i][j+1] == 0 {
					counter++
				}
			}
		}
	}
	return counter
}


Calendar Jun 25, 2026
Edit Edit this page
Total visits:   You are visitor No.
中文