力扣刷題筆記(一)

今年第一天從刷題開始拯救本身!PS末尾滿滿負能量! (金魚腦子忘了)小程序

今天就刷了每日一題種花問題數組

真的沒有一點思路,去題解裏膜拜了大佬的想法,模仿大佬的想法寫了一個小小程序,改了又改,很複雜TTblog

class Solution {
    public boolean canPlaceFlowers(int[] flowerbed, int n) {
        int len=flowerbed.length;
        //特殊狀況討論
        if(len==1&&flowerbed[0]==0)
        {
           flowerbed[0]=1;n--;
           if(n>0) return false;
           else return true; 
        }
        else
        {
        //遍歷數組,左右均爲0便可種花
        for(int i=0;i<len-1;i++)//這裏i只能到len-2,少了一個len-1
        {
                if(flowerbed[i]==0&&(i==0 || flowerbed[i-1]==0)&&(flowerbed[i+1]==0 || i==len-1))
            {
                flowerbed[i]=1;
                n--;
                if(n==0) break;
            }
        }
        if(flowerbed[len-1]==0&&flowerbed[len-2]==0)n--;
        if(n>0) return false;
        else return true;
    }
}
}

  遇到的問題(真的很白癡,寫下來當個記錄了。。。)io

當時本身上手寫的時候就隱隱約約想到數組邊界有問題須要考慮了,可是看了大佬的解析,沒發現,就沒作這一塊,事實證實,那不是沒作,是你本身沒看見啊!!氣。class

因而又從新限制數組邊界的兩種狀況。而後again失敗,是沒考慮多種狀況,例如,有種一顆花,例若有種花的地方大於N的,發現循環寫多了,又從新合併簡化代碼,等等。還有以惡地方,就是隻能寫N>0的狀況,由於它相反的!=0和==0 是兩種狀況,不如>0方便!而後改了又改,最後終於過了。感謝發佈題解的大佬,救我一命!循環

雖然是很簡單的代碼,可是考慮的地方不少,注意的小細節不少,須要思!慮!周!全!遍歷

但願這一道題目能夠開啓2021嶄新又奮鬥的一年!!程序

PPS我真的是金魚腦子,東西不能留着寫,必忘!di

相關文章
相關標籤/搜索