Skip to content
On this page

605. 种花问题

原题链接:LeetCode 605. 种花问题

题目描述

假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。

给你一个整数数组 flowerbed 表示花坛,由若干 01 组成,其中 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
};

技术文档集合