> 文档中心 > 【leetcode刷题】种花问题【605】

【leetcode刷题】种花问题【605】

【leetcode刷题】种花问题【605】

  • 一、题目
    • 1.题目描述
  • 二、解题报告
    • 1.思路分析
    • 2.代码详解
    • 3.注意事项

一、题目

1.题目描述

【leetcode刷题】种花问题【605】

二、解题报告

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]比较是否相等。。。持续到最后。所以这里要分开写等号
    【leetcode刷题】种花问题【605】

  • 定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数)

int main(){int a[] = {1,2,3};int length = sizeof(a)/sizeof(a[0]);printf("%d\n",length);}