- 一、题目
- 1.题目描述
- 二、解题报告
- 1.思路分析
- 2.代码详解
- 3.注意事项
C++
class Solution {
public:
bool canPlaceFlowers(vector& flowerbed, int n) {
int count=0;
if(flowerbed.size()>=2){
if(flowerbed[0]==0&&flowerbed[1]==0){
flowerbed[0]=1;
count++;
}
if(flowerbed[flowerbed.size()-1]==0&&flowerbed[flowerbed.size()-2]==0){
flowerbed[flowerbed.size()-1]=1;
count++;
}
if(flowerbed.size()>=3){
for (int t1=1;t1
if (flowerbed[t1]==flowerbed[t1+1]&&flowerbed[t1+1]==flowerbed[t1+2]&&flowerbed[t1+2]==0&&flowerbed[t1+1]==0&&flowerbed[t1]==0){
printf("%d%d%d",flowerbed[t1],flowerbed[t1+1],flowerbed[t1+2]);
printf("hhhh");
count++; t1=t1+2;
printf("%d",count);
}else{
t1=t1+1;
}
}
};
}else if(flowerbed[0]==0){
count++;
}
if (count>=n){
// printf("%d",count);
// printf("%d",n);
return true;
}else{
// printf("%d",count);
// printf("%d",n);
return false;
}
}
};
3.注意事项
-
连等,它是会先计算出前两个是否相等(相等则等于1,否则等于0),然后再是1/0==flowerbed[t1+2]比较是否相等。。。持续到最后。所以这里要分开写等号
-
定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数)
int main(){
int a[] = {1,2,3};
int length = sizeof(a)/sizeof(a[0]);
printf("%dn",length);
}



