Description
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
Input: flowerbed = [1,0,0,0,1], n = 1
Output: True
Note
1.The input array won’t violate no-adjacent-flowers rule.
2.The input array size is in the range of [1, 20000].
3.n is a non-negative integer which won’t exceed the input array size.
Solution
First
|
|
Result
AC
Analyse
复杂度没问题,但是耗时太长,测了好多边界条件,而且在判断count==1的条件下,开始把list.get(0)/2 + (len - list.get(0) - 1)/2 = (len - 1)/2 直接加一起算,其实得分成两半,结果是会有差的。这个解法过于愚蠢。
Optimization
Idea
|
|
Analyse
思路很清晰,开始想得count超过n不知道怎么在count==n的情况下就break,还是代码太不熟练,这个思路很清晰,一眼可以看出来,好解法,O(n),代码行数少。