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

2020年11月24日,力扣,简单,种花问题


一、题目描述

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

给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。

示例 1:输入: flowerbed = [1,0,0,0,1], n = 1输出: True

二、解题思路

来源官方:从左到右扫描数组 flowerbed,如果数组中有一个 0,并且这个 0 的左右两侧都是 0,那么我们就可以在这个位置种花,即将这个位置的 0 修改成 1,并将计数器 count 增加 1。对于数组的第一个和最后一个位置,我们只需要考虑一侧是否为 0。在扫描结束之后,我们将 count 与 n 进行比较。如果 count >= n,那么返回 True,否则返回 False。

三、实现代码

实现代码如下:

public class Leetcode605 {public static void main(String[] args) {int[] flowerbed = {1,0,0,0,1};int n = 1;System.out.println(canPlaceFlowers(flowerbed,n));}public static boolean canPlaceFlowers(int[] flowerbed, int n) {int i = 0;int count = 0;while (i < flowerbed.length){if (flowerbed[i] == 0 && (i == 0 || flowerbed[i - 1] == 0) && (i == flowerbed.length - 1 || flowerbed[i + 1] == 0)) {flowerbed[i] = 1;count++;}i++;}return count >= n;}
}

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

  1. LeetCode 605[Python]. 种花问题 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。

    LeetCode 605. 种花问题 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给定一个花坛(表示为一个数组包含0和 ...

  2. 在Excel表格中如何使一个很长的表,打印时每页都能打出表头

    在Excel表格中如何使一个很长的表,打印时每页都能打出表头 目录 在Excel表格中如何使一个很长的表,打印时每页都能打出表头 1. 找到"页面布局"选项卡点击打印标题 2.选择 ...

  3. 语言print如何实现连续输出_【每日一题】如何实现一个高效的单向链表逆序输出?...

    今后,动力节点Java学院将每天为大家带来一道大厂面试真题,这些面试题都是大厂技术专家们结合多年的工作.面试经验总结提炼而成的面试真题. 通过这些面试题,还可以间接地了解技术大牛们出题思路与考察要点. ...

  4. 每日一题(38)—— 一个32位的机器,该机器的指针是多少位?

    一个32位的机器,该机器的指针是多少位? 指针是多少位只要看地址总线的位数就行了.80386以后的机子都是32的数据总线.所以指针的位数就是4个字节了.

  5. 每日一题——使用tkinter做一个四则运算程序

    15. 做一个四则运算程序.将操作数填入输入框后,单击相应单选按钮将算式和结果填入下方的标签中. from tkinter import *def func():a = float(t1.get()) ...

  6. 每日一题(79) - 求数组中最长递增子序列

    题目来自编程之美 题目 思路(1) 动态规划(复杂度为n^2) 方程: F[i]:表示以nArr[i]为结尾的最长递增子序列的最大长度. F[i] = Max(F[j]) + 1 && ...

  7. JS每日一题: 小程序页面之间如何通信?

    20190227 小程序页面之间如何通信? 首先将通信的模型列举出来, 分为以下几种 兄弟页面间通信 父路径页面向子路径页面通信 子路径页面向父路径页面通信 通信的方式 localStorage 本地 ...

  8. 每日一题 11.4 鸡蛋掉落

    每日一题 11.4 鸡蛋掉落 一.题目概述 这是一道困难题,难度肯定是比前三天的要大的,这个毋庸置疑,但是毕竟趣味性在这里摆着,和昨天那个相比,钻研这个的兴趣要更大一点,昨天那个并查集和哈希表实在是太 ...

  9. JS每日一题:Vue中的diff算法?

    20190125 Vue中的diff算法? 概念: diff算法是一种优化手段,将前后两个模块进行差异对比,修补(更新)差异的过程叫做patch(打补丁) 为什么vue,react这些框架中都会有di ...

最新文章

  1. 02CSS基础选择器
  2. 我们每天都在做无用功?
  3. shell中的条件表达式
  4. 记一次内存泄漏问题的排查经历
  5. make时候说找不到makefile_找不到答案的时候,就去看一看这个世界
  6. 四则运算关于加括号的思路
  7. C++ 中复杂的声明
  8. Docker安装java-Zookeeper进行操作
  9. java 多进程多线程_Java并发编程原理与实战三:多线程与多进程的联系以及上下文切换所导致资源浪费问题...
  10. Spring解决循环依赖
  11. Go单测测试 — 数据库 CRUD 的 Mock 测试
  12. 小孔成像总结_中考物理解题技巧+方法大全, 总结非常到位!
  13. CSliderCtrl(滑块)控件
  14. 「代码随想录」70. 爬楼梯【动态规划】详解!
  15. Java NIO - Buffer 基础 -1
  16. 台式计算机开机后黑屏,电脑开机显示黑屏有关的问题与解决方法
  17. 尽挥洒最终版 思嫣_温州方言歌曲_温州话歌曲
  18. linux 秒数转时间,linux下如何把时间转成秒数,或把秒数转换成标准时间格式
  19. C# 判断有向图是否存在环
  20. 内外部函数和内存模型

热门文章

  1. VR全景拍摄时必须注意的事项有哪些
  2. 全球与中国3D打印假肢市场深度研究分析报告
  3. 加密锁收集C2V文件更新文件
  4. vue-router 是什么?它有哪些组件
  5. Android有线IPV6总结(二):内核中RS与RA的一点学习
  6. 十大技术类公众微信号地址
  7. 智能工厂在智能制造企业中的实践应用-东杰智能
  8. 天干地支(出生年月的转换)
  9. 很励志的故事(尸山代码)
  10. java如何数字竖排输出_Java输出竖排文字