Suppose 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 - they would compete for water and both would die.
Given a flowerbed (represented as an array containing 0 and 1, where 0 means empty and 1 means not empty), and a number n, return if n new flowers can be planted in it without violating the no-adjacent-flowers rule.
Example 1:
1 | Input: flowerbed = [1,0,0,0,1], n = 1 |
Example 2:
1 | Input: flowerbed = [1,0,0,0,1], n = 2 |
Note:
- The input array won’t violate no-adjacent-flowers rule.
- The input array size is in the range of [1, 20000].
- n is a non-negative integer which won’t exceed the input array size.
遍历
从左到右依次判断该位置是否能种花flowerbed[i - 1] == 0 && flowerbed[i + 1] == 0 && flowerbed[i] == 0
. 若能, ++capacity,并且在该位置设置为1. 最后判断capacity和n的大小即可.
注意当n == 0 和 n == flowerbed.size() - 1 时判断条件改为flowerbed[i + 1] == 0 && flowerbed[i] == 0 和 flowerbed[i - 1] == 0 && flowerbed[i] == 0
1 | class Solution { |