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 存储 关系型数据库
什么是关系型数据库?有什么优缺点
什么是关系型数据库?有什么优缺点
|
12月前
|
SQL 监控 Oracle
Oracle创建和管理表空间
Oracle创建和管理表空间
82 1
|
4月前
|
人工智能 前端开发 JavaScript
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
阿里云验证码产品,使用业界先进的风控引擎结合“规则+AI”模型,有效区分真实用户和机器自动化脚本攻击,避免机器请求造成业务损失。主要适用于垃圾注册、刷库撞库,薅羊毛,短信被刷等风险场景。为您提供安全可靠的业务环境。本文为大家介绍验证码使用时滑动验证流程及验证不通过的问题排查。
64913 5
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
|
Oracle Ubuntu Java
Ubuntu安装JDK
一. Ubuntu 安装JDK的两种方式 1. 通过apt安装. 2. 通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 二. 通过apt安装(jdk有很多版本, 这里介绍两种: openjdk和oracle的JDK) 1.
62864 4
|
4月前
|
存储 缓存 安全
Linux系统内核面试题
Linux系统内核面试题
91 3
|
4月前
|
存储 资源调度 JavaScript
vue引入vuex
vue引入vuex
46 7
|
4月前
394.字符串解码
394.字符串解码
30 3
|
4月前
|
存储 SQL Java
【数据库】数据库语言
【数据库】数据库语言
53 1
|
4月前
|
JavaScript 前端开发
JavaScript 循环方法详解
JavaScript 循环方法详解
46 1
|
4月前
|
存储 安全 数据挖掘
【数据库】数据库基本知识
【数据库】数据库基本知识
27 1