Leetcode_605_种花问题_水题

1/1

特判一下开头结尾,和长度为1的数组
其他情况就连续三个0,将中间种花即可
class Solution {
    
    
    public boolean canPlaceFlowers(int[] flowerbed, int n) {
    
    
        int m=flowerbed.length;
        int ans=0;
        if(m==1){
    
    
            ans=flowerbed[0]==0?1:0;
        }
        if(m>=2&&flowerbed[0]==0&&flowerbed[1]==0){
    
    
            ans++;
            flowerbed[0]=1;
        }
        if(m>=2&&flowerbed[m-1]==0&&flowerbed[m-2]==0){
    
    
            flowerbed[m-1]=1;
            ans++;
        }
        for(int i=2;i<m;i++){
    
    
            if(flowerbed[i]==0&&flowerbed[i-1]==0&&flowerbed[i-2]==0){
    
    
                ans++;
                flowerbed[i-1]=1;
            }
        }
        if(ans>=n){
    
    
            return true;
        }
        return false;
    }
}

猜你喜欢

转载自blog.csdn.net/HDUCheater/article/details/112058373
今日推荐