您的位置:首页 > 其它

Flowerbed can place flowers problem

2015-04-07 14:41 120 查看
/*
Suppose you have a long flowerbed in which some of the plots are planted and
some are not. However, flowers cannot be planted in adjacent plots -
they would compete for water and both would die. Given a flowerbed
(represented as an array containing booleans), return if a given number of
new flowers can be planted in it without violating the no-adjacent-flowers rule.
*/

public boolean canPlaceFlowers(List<Boolean> flowerbed, int numberToPlace) {
this.hashCode();
if(flowerbed == null || flowerbed.isEmpty()){
throw new IllegalArgumentException("bed is empty");
}

if(numberToPlace==0)
return true;

if(flowerbed.size()==1){
return !flowerbed.get(0) && numberToPlace<=1;
}

int counter = 0;

for(int i=0; i< flowerbed.size(); i++){
if(!flowerbed.get(i)){
if((i==0 && !flowerbed.get(i+1))
|| (i==flowerbed.size()-1 && !flowerbed.get(i-1))
|| (!flowerbed.get(i+1) && !flowerbed.get(i-1)) ){
//place the flower
flowerbed.set(i, true);
counter++;
if(counter==numberToPlace)
return true;
}
}
}

return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: