今年第一天從刷題開始拯救本身!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