Flowerbed can place flowers problem

来源:互联网 发布:mac win8.1 iso 下载 编辑:程序博客网 时间:2024/05/16 05:27
/*    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;    }
0 0
原创粉丝点击