• 贪心策略---种植花朵


    种植花朵

    605. Can Place Flowers (Easy)

    Input: flowerbed = [1,0,0,0,1], n = 1
    Output: True
    

    题目描述:

      flowered数组中1表示已经种下了花朵。花朵之间至少需要一个单位的间隔,求解能否种下n多花。

    思路分析:

      访问到flowered[i]为0,则查看flowered[i-1]和flowered[i+1]是否为零,如果满足前后都为0,则可以在坐标i种下一朵花。

    代码:

    public boolean canPlaceFlowers(int []flowerbed,int n){
        int len=flowerbed.length;
        int cnt=0;//记录可以种下的花朵数
        if(len==0)
            return false;
        for(int i=0;i<len&&cnt<n;i++){
            if(flowerbed[i]==1)
                continue;
            int pre=i==0?0:flowerbed[i-1];
            int next=i==len-1?0:flowerbed[i+1];
            if(pre==0&&next==0){
                cnt++;
                flowerbed[i]=1;
            }
        }
        return cnt>=n;
    }
    
  • 相关阅读:
    加密
    python数据类型
    json
    xml
    物理层
    计算机网络概述
    js之BOM概述
    消息队列介绍
    linux bond nmcli命令
    linux iostat
  • 原文地址:https://www.cnblogs.com/yjxyy/p/11105916.html
Copyright © 2020-2023  润新知