【leetcode刷题】种花问题【605】
【leetcode刷题】种花问题【605】
- 一、题目
-
- 1.题目描述
- 二、解题报告
-
- 1.思路分析
- 2.代码详解
- 3.注意事项
一、题目
1.题目描述
二、解题报告
1.思路分析
2.代码详解
C++👇
class Solution {public: bool canPlaceFlowers(vector<int>& 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<flowerbed.size()-3;){ 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("%d\n",length);}