Leetcode Note: Go - Can Place Flowers

Can Place Flowers - LeetCode
https://leetcode.com/problems/can-place-flowers/

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

所感

  • flowerbed, n 引数から花を植える間隔を満たしている状態か判定して bool を return する

回答

Can Place Flowers - LeetCode
https://leetcode.com/problems/can-place-flowers/solution/

func canPlaceFlowers(flowerbed []int, n int) bool {
    count := 0
    for i := 0; i < len(flowerbed); i++ {
        if flowerbed[i] == 0 {
            emptyLeftPlot := (i == 0) || (flowerbed[i - 1] == 0)
            emptyRightPlot := (i == len(flowerbed) - 1) || (flowerbed[i + 1] == 0)
            if emptyLeftPlot && emptyRightPlot {
                flowerbed[i] = 1;
                count++
            }
        }
    }
    return count >= n
}
  • 植える間隔は配列要素の 0 をカウントすれば良いので、ループしながら前後要素が 0 かをチェックする
  • 前後要素の 0 をカウントして n より大きければ植え込み可能として return