class Solution {
public boolean canPlaceFlowers(int[] flowerbed, int n) {
int i = 0;
//题干里的要求就是花的旁边不能有花,所以一旦出现1则它的左右一格一定都是无法种花的0,所以直接跳过,只要看下一格格子是不是1或者到达终点。
while (i < flowerbed.length) {
if (flowerbed[i] == 0) {
if (i == flowerbed.length - 1 || flowerbed[i + 1] == 0) {
// 可种,种一朵,跳到下一个有可能可以种的地方,步进2
n--;
i += 2;
} else {
// 不可种,当前位置下一个位置为1,则下一个有可能可以种的地方需要步进3
i += 3;
}
} else {
// 不可种,当前位置为1,则下一个有可能可以种的地方需要步进2
i += 2;
}
}
return n <= 0;
}
}
leetcode【贪心算法】简单部分
最新推荐文章于 2024-08-28 20:58:11 发布