文章作者:Tyan 博客:noahsnail.com | CSDN | 简书
1. Description
2. Solution
**解析:**如果n
为0,即要种花的数量为0,直接返回True
即可。分析什么情况下不能种花,一种是当前地块已经种花了,一种是前一块地已经种花了,一种是后一块地已经种花了,如果都不符合上述三种情况,则当前地块可以种花,且要种的花数减一,每种一次花,判断剩余花的数量,重复上述过程即可。
- Version 1
class Solution:
def canPlaceFlowers(self, flowerbed: List[int], n: int) -> bool:
if n == 0:
return True
for i in range(len(flowerbed)):
if flowerbed[i] == 1 or (i>0 and flowerbed[i-1] == 1) or (i<len(flowerbed)-1 and flowerbed[i 1] == 1):
continue
flowerbed[i] = 1
n -= 1
if n == 0:
return True
return False
Reference
- https://leetcode.com/problems/can-place-flowers/