605. Can Place Flowers*
https://leetcode.com/problems/can-place-flowers/
题目描述
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:
Example 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.
C++ 实现 1
贪婪算法. 能用上最少空间的思路是, 遇到为 0
的位置, 就尝试放置一盆花, 但是要判断左边 prev
以及右边是否已经有花了.
思路参考: Java - Greedy solution - O(flowerbed) - beats 100%
其中 count < n
这个条件是一个优化, 可以提前终止循环.