605. 种花问题
Posted yangbocsu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了605. 种花问题相关的知识,希望对你有一定的参考价值。
605. 种花问题
一、题目
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。
二、参考代码
// 判断 flowerbed.length = 1 的情况
class Solution
public boolean canPlaceFlowers(int[] flowerbed, int n)
int ans = 0;
// if(flowerbed.length == 1)
// if(flowerbed[0] == 1)
// if(n==0)
// return true;
// else
// return false;
//
// else
// // flowerbed[0] == 0
// if(n==1 || n==0)
// return true;
// else
// return false;
//
//
//
// 判断 flowerbed.length = 1 的情况
if(flowerbed.length == 1)
if(flowerbed[0] + n > 1)
return false;
else
return true;
// 边界处理 前两个都是 [0,0,....]的情况
if(flowerbed[0] == 0 && flowerbed[1] == 0)
flowerbed[0] = 1;
ans +=1;
// 中间正常部分的处理
for(int i = 1; i < flowerbed.length - 1; i++)
if(flowerbed[i-1] != 1 && flowerbed[i+1] !=1 && flowerbed[i] == 0)
flowerbed[i] = 1;
ans ++;
// 末尾边界 后两个都是 [....0,0]的情况
if(flowerbed[flowerbed.length - 1] == 0 && flowerbed[flowerbed.length - 1 - 1] ==0)
flowerbed[flowerbed.length - 1] = 1;
ans ++;
return ans >= n;
以上是关于605. 种花问题的主要内容,如果未能解决你的问题,请参考以下文章