Appearance
605. 种花问题
原题链接:LeetCode 605. 种花问题
题目描述
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n** ,能否在不打破种植规则的情况下种入 n **朵花?能则返回 true ,不能则返回 false 。
示例 1:
**输入:**flowerbed = [1,0,0,0,1], n = 1 **输出:**true
示例 2:
**输入:**flowerbed = [1,0,0,0,1], n = 2 **输出:**false
提示:
1 <= flowerbed.length <= 2 * 104
- `flowerbed[i]` 为 `0` 或 `1`
- `flowerbed` 中不存在相邻的两朵花
- `0 <= n <= flowerbed.length`
难度: Easy
题解代码
javascript
/**
* @param {number[]} flowerbed
* @param {number} n
* @return {boolean}
*/
const canPlaceFlowers = (flowerbed, n) => {
let max = 0
for (let i = 0; i < flowerbed.length; i++) {
if (i === 0 && !flowerbed[0] && !flowerbed[1]) {
max++
i++
} else if (i === flowerbed.length - 1 && !flowerbed[i] && !flowerbed[i - 1]) {
max++
} else if (!flowerbed[i - 1] && !flowerbed[i] && !flowerbed[i + 1]) {
max++
i++
}
}
return max >= n
};