605_CanPlaceFlowers - a920604a/leetcode GitHub Wiki


categories: leetcode comments: false tags: null title: 605. Can Place Flowers

solution

class Solution {
public:
    bool canPlaceFlowers(vector<int>& flowerbed, int n) {
        if(n==0) return true;
        int size = flowerbed.size();
        if(size==1){
            if(flowerbed[0]==1) return n<=0;
            else return n<=1;
        }
        for(int i=0;i<size;++i){
            //  000, 001, 010, 100, 101, 00], 01], 10]
            //  [00x
            if(i==0 && flowerbed[i]==0 && flowerbed[i+1]==0){
                n--;
                flowerbed[i]=1;
            }
            // 00]
            if(i==size-1 && flowerbed[i] ==0 && flowerbed[i-1] == 0){
                flowerbed[i]=1;
                n--;
            }
            else if(i>0 && i<size-1 && flowerbed[i] == 0){
                // x0x
                if(flowerbed[i-1]==0 && flowerbed[i+1] ==0){ // 000
                    flowerbed[i] =1;
                    n--;
                }
            }
        }
        return n<=0;
    }
};

analysis

  • time complexity O(n)
  • space complexity O(n) -> O(1)
⚠️ **GitHub.com Fallback** ⚠️