605.种花问题

简介: 605.种花问题

题目:假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。

给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false 。

                         

class Solution {
    public boolean canPlaceFlowers(int[] flowerbed, int n) {
        int count = 0;
        int m = flowerbed.length;
        int prev = -1;
        for (int i = 0; i < m; i++) {
            if (flowerbed[i] == 1) {
                if (prev < 0) {
                    count += i / 2;
                } else {
                    count += (i - prev - 2) / 2;
                }
                prev = i;
            }
        }
        if (prev < 0) {
            count += (m + 1) / 2;
        } else {
            count += (m - prev - 1) / 2;
        }
        return count >= n;
    }
}


相关文章
|
SQL 存储 关系型数据库
什么是关系型数据库?有什么优缺点
什么是关系型数据库?有什么优缺点
|
8月前
|
人工智能 前端开发 JavaScript
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
阿里云验证码产品,使用业界先进的风控引擎结合“规则+AI”模型,有效区分真实用户和机器自动化脚本攻击,避免机器请求造成业务损失。主要适用于垃圾注册、刷库撞库,薅羊毛,短信被刷等风险场景。为您提供安全可靠的业务环境。本文为大家介绍验证码使用时滑动验证流程及验证不通过的问题排查。
65085 5
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
|
Oracle Ubuntu Java
Ubuntu安装JDK
一. Ubuntu 安装JDK的两种方式 1. 通过apt安装. 2. 通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 二. 通过apt安装(jdk有很多版本, 这里介绍两种: openjdk和oracle的JDK) 1.
66816 4
|
8月前
|
C语言
第一章 C语言知识点(程序)
第一章 C语言知识点(程序)
65 0
|
8月前
|
存储 缓存 安全
Linux系统内核面试题
Linux系统内核面试题
139 3
|
8月前
|
消息中间件 存储 缓存
内核常见面试题
内核常见面试题
91 2
|
8月前
|
设计模式 运维 安全
边车模式的介绍
边车模式的介绍
109 0
|
8月前
|
数据库
【数据库】第二章 关系模型介绍
【数据库】第二章 关系模型介绍
65 0
|
8月前
|
负载均衡 网络协议
虚拟网络技术:bond技术
虚拟网络技术:bond技术
261 0
|
8月前
|
存储 监控 调度
服务器固件
服务器固件
131 0