605.Can Place Flowers === ###### tags: `Easy`,`Array`,`Greedy` [605. Can Place Flowers](https://leetcode.com/problems/can-place-flowers/) ### 題目描述 You have a long flowerbed in which some of the plots are planted, and some are not. However, flowers cannot be planted in **adjacent** plots. Given an integer array `flowerbed` containing `0`'s and `1`'s, where `0` means empty and `1` means not empty, and an integer `n`, return *if* `n` new flowers can be planted in the `flowerbed` without violating the no-adjacent-flowers rule. ### 範例 **Example 1:** ``` Input: flowerbed = [1,0,0,0,1], n = 1 Output: true ``` **Example 2:** ``` Input: flowerbed = [1,0,0,0,1], n = 2 Output: false ``` **Constraints**: * 1 <= `flowerbed.length` <= 2 * 10^4^ * `flowerbed[i]` is 0 or 1. * There are no two adjacent flowers in `flowerbed`. * 0 <= `n` <= `flowerbed.length` ### 解答 #### Python ```python= class Solution: def canPlaceFlowers(self, flowerbed: List[int], n: int) -> bool: cnt = 0 for i in range(len(flowerbed)): if flowerbed[i] == 0: empty_left_plot = (i == 0) or (flowerbed[i - 1] == 0) empty_right_plot = (i == len(flowerbed) - 1) or (flowerbed[i + 1] == 0) if empty_left_plot and empty_right_plot: flowerbed[i] = 1 cnt += 1 if cnt >= n: return True return cnt >= n ``` > [name=Ron Chen][time=Mon, Mar 20, 2023] #### Javascript ```javascript= function canPlaceFlowers(flowerbed, n) { let count = 0; for (let i = 0; i < flowerbed.length; i++) { if (!flowerbed[i - 1] && !flowerbed[i] && !flowerbed[i + 1]) { count++; flowerbed[i] = 1; } } if (count >= n) return true; return false; } ``` > [name=Marsgoat][time=Mon, Mar 20, 2023] ### Reference [回到題目列表](https://hackmd.io/@Marsgoat/leetcode_every_day)