Решение
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 // Проверяем, удалось ли посадить нужное количество цветов
}