class Solution {
public:
bool canPlaceFlowers(vector<int>& flowerbed, int n) {
int count = 0;
if (flowerbed.size() == 1) {
if (flowerbed[0] == 0) {
return true;
} else if (flowerbed[0] == 1 && n == 0) {
return true;
} else {
return false;
}
}
for(int i = 0; i < flowerbed.size();) {
if (flowerbed[i] == 0) {
if (i == 0 ) {
if (i+1 < flowerbed.size() && flowerbed[i+1] == 0) {
i+=2;
count++;
} else {
i++;
}
} else if ( i == flowerbed.size() - 1) {
if (flowerbed[i-1] == 0) {
i+=2;
count++;
} else {
i++;
}
} else {
if ((i-1 > 0&& flowerbed[i-1] == 0 ) && (i+1 < flowerbed.size() && flowerbed[i+1] == 0)) {
count++;
i+=2;
} else {
i++;
}
}
} else {
i++;
}
}
cout << count << endl;
return n <= count ? true : false;
}
};