LeetCode 605. 种花问题-C语言
题目描述
解题思路
本题使用贪心算法,要判断三个连续的坑才能确定是否可以种植。
代码
bool canPlaceFlowers(int* flowerbed, int flowerbedSize, int n) {
int count = 0;
int prev = -1;
for (int i = 0; i < flowerbedSize; i++) {
if (flowerbed[i] == 1) {
if (prev < 0) {
count += i / 2;
} else {
count += (i - prev - 2) / 2;
}
prev = i;
}
}
if (prev < 0) {
count += (flowerbedSize + 1) / 2;
} else {
count += (flowerbedSize - prev - 1) / 2;
}
return count >= n;
}