https://leetcode.com/problems/can-place-flowers Easy

Решение

fun canPlaceFlowers(flowerbed: IntArray, n: Int): Boolean {
    var count = 0 // Счетчик для количества посаженных цветов
    var i = 0

    while (i < flowerbed.size) {
        // Если текущая позиция свободна и соседние тоже свободны (или на краях массива)
        if (flowerbed[i] == 0 &&
            (i == 0 || flowerbed[i - 1] == 0) &&
            (i == flowerbed.size - 1 || flowerbed[i + 1] == 0)) {
            flowerbed[i] = 1 // Сажаем цветок
            count++ // Увеличиваем счетчик
            if (count >= n) return true // Если достигли нужного числа, возвращаем true
            i += 2 // Пропускаем следующую позицию
        } else {
            i++ // Переходим к следующей позиции
        }
    }
    return count >= n // Проверяем, удалось ли посадить нужное количество цветов
}