//在 flowerbed 数组左右两侧各添加一个 0 ,好处是不用考虑边界条件。
//任意为 0 的位置处,只要相邻两侧均为 0 ,就可以栽上一棵花
class Solution {
public:
bool canPlaceFlowers(vector<int>& flowerbed, int n) {
vector<int>t;
t.push_back(0);
for(int i=0;i<flowerbed.size();i++) t.push_back(flowerbed[i]);
t.push_back(0);
int len=t.size(), flowers=0;
for(int i=1;i<len-1;i++){
if(t[i-1]==0&&t[i]==0&&t[i+1]==0){
t[i]=1;
flowers+=1;
}
}
return flowers>=n;
}
};
leetcode605+Can Place Flowers+贪心+两边边界都加一个0
最新推荐文章于 2024-11-01 15:19:21 发布
该代码段展示了一个C++类Solution中的方法,用于判断能否在给定的flowerbed数组中种植至少n棵花。方法首先在数组两侧添加0以处理边界条件,然后遍历数组,当遇到连续的三个0时,就标记为1(表示种上花),并增加计数。最后返回计数值是否大于等于n,作为能否种植n朵花的依据。
摘要由CSDN通过智能技术生成