Leetcode Note: Go - Island Perimeter

Add Binary - LeetCode
https://leetcode.com/problems/add-binary/

  • Go 言語で取り組んだメモ

所感

  • grid [][]int が渡され、これを正方形の島としてプロットしていく
  • 島全体の長さを int として return していく

回答

golang simple solution - LeetCode Discuss
https://leetcode.com/problems/island-perimeter/discuss/771074/golang-simple-solution

func islandPerimeter(grid [][]int) int {
	var (
		res int
		l   = len(grid[0])
	)
	for i := 0; i < len(grid); i++ {
		for j := 0; j < l; j++ {
			if grid[i][j] == 1 {
				res += 4
				if i > 0 && grid[i-1][j] == 1 {
					res -= 2
				}
				if j > 0 && grid[i][j-1] == 1 {
					res -= 2
				}
			}
		}
	}
	return res
}
  • ループしながら長さを計測
  • 隣接している島があれば -2 で調整していく