力扣刷题笔记(一)

今年第一天从刷题开始拯救本身!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

相关文章
相关标签/搜索