LeetCode 605.种花问题(贪心练习)
emm简单题也把我难住了。
整体思路
先看看题目吧:
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。
下面是示例和提示:
其实刚开始自己被各种没想到的情况折腾的不行,但其实还是没有找到能够一劳永逸的种花判断条件,看了力扣官方解答…emmm这是写了一篇作文了,然后发现其他人有更好更简洁的解法,为什么我就想不到呢。。。
-
不能出现连续的两个“1”,所给数组能种植的花大于等于n则返回true;
-
可以种花的条件是:
(外层循环)
①自己为空
&&
②左边为空或自己是最左边
&&
③右边为空或自己是最右边每循环一次则判断一次是否满足已种植n朵❀的条件,若满足则退出循环。