阿里网站怎样做seo,青山别墅网页制作教程,网站建设商城商城网站建设多少钱,简历设计网官网入口1. 题目
假设你有一个很长的花坛#xff0c;一部分地块种植了花#xff0c;另一部分却没有。可是#xff0c;花卉不能种植在相邻的地块上#xff0c;它们会争夺水源#xff0c;两者都会死去。
给定一个花坛#xff08;表示为一个数组包含0和1#xff0c;其中0表示没种…1. 题目
假设你有一个很长的花坛一部分地块种植了花另一部分却没有。可是花卉不能种植在相邻的地块上它们会争夺水源两者都会死去。
给定一个花坛表示为一个数组包含0和1其中0表示没种植花1表示种植了花和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花能则返回True不能则返回False。
示例 1:
输入: flowerbed [1,0,0,0,1], n 1
输出: True示例 2:
输入: flowerbed [1,0,0,0,1], n 2
输出: False注意:
数组内已种好的花不会违反种植规则。
输入的数组长度范围为 [1, 20000]。
n 是非负整数且不会超过输入数组的大小。来源力扣LeetCode 链接https://leetcode-cn.com/problems/can-place-flowers 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
题目意思是一个为0的位子前后都是0才可以种植花朵用两个bool变量表示当前位置i的前后一个位置有没有花注意边界处理
class Solution {
public:bool canPlaceFlowers(vectorint flowerbed, int n) {if(n 0)//不用种肯定可以return true;int i 0, count 0, end flowerbed.size()-1;bool prevFlower false;//前面没有花bool nextFlower false;//后面有没有花while(i end){if(flowerbed[i] 0)//当前可以种花{nextFlower (iend ? false : flowerbed[i1]);prevFlower (i0 ? false : flowerbed[i-1]);if(!prevFlower !nextFlower){flowerbed[i] 1;//种上一朵花count;//计数1if(count n)return true;}}i;}return false;}
};