力扣 leetcode 605. 种花问题 (python)
Topic
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。
Example_1:
输入:flowerbed = [1,0,0,0,1], n = 1
输出:true
Exxample_2:
输入:flowerbed = [1,0,0,0,1], n = 2
输出:false
Solution:
首先整体思路是计算最大种花量为ans
与需要种花量n进行比较
若ans大于或等于n则能种n朵返回True
若ans小于n则不能种n朵花返回False
之后进行分组讨论
一、对于两侧的两个花坛(索引为0, -1的花坛):
只要两侧的两个花坛旁边的花坛为0
两侧的花坛就可以种花
二、对于中间的花坛(除了索引为0, -1, 1, -2)的花坛:
只有周围的两个花坛均为0时
中间的花坛可以种花
(由于遍历的花坛已经种花,则下一个花坛无法种花,直接跳过下一个花坛)
三、对于索引为1, -2的两个花坛
这两个花坛若周围均为0,则将花种在两侧或这两个花坛结果是一样的
例如
若开始的序列为0,0,0,1
则将话种在索引0,或者索引1都是只能种一朵
Code:
class Solution:def canPlaceFlowers(self, flowerbed: List[int], n: int) -> bool:ans = 0if len(flowerbed) == 1:if flowerbed[0] == 0 and n <= 1:return Trueelif n == 0:return Trueelse:return Falseif flowerbed[0] == 0 and flowerbed[1] == 0:ans += 1flowerbed[0] = 1if flowerbed[-2] == 0 and flowerbed[-1] == 0:ans += 1flowerbed[-1] = 1i = 2while i < len(flowerbed) - 2:if flowerbed[i - 1] == 0 and flowerbed[i + 1] == 0 and flowerbed[i] != 1:flowerbed[i] = 1ans += 1i += 1i += 1if ans >= n:return Trueelse:return False
Result:
力扣 leetcode 605. 种花问题 (python)相关推荐
- leetcode 605. 种花问题(python)
题目链接 题目描述: 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给定一个花坛(表示为一个数组包含0和1,其中0表示没 ...
- 力扣(LeetCode)刷题,简单+中等题(第35期)
力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升. 第1题:解码异或后的排列 试题要求如下: 回答(C语言): /*** Note: ...
- 力扣(LeetCode)刷题,简单+中等题(第34期)
目录 第1题:整数转罗马数字 第2题:电话号码的字母组合 第3题:二叉树的所有路径 第4题:砖墙 第5题:下一个排列 第6题:括号生成 第7题:删除并获得点数 第8题:全排列 第9题:颜色分类 第10 ...
- 力扣(LeetCode)刷题,简单+中等题(第33期)
目录 第1题:Z 字形变换 第2题:删除字符串中的所有相邻重复项 第3题:基本计算器 II 第4题:螺旋矩阵 第5题:螺旋矩阵 II 第6题:盛最多水的容器 第7题:删除有序数组中的重复项 II 第8 ...
- 力扣(LeetCode)刷题,简单+中等题(第32期)
目录 第1题:数组的度 第2题:托普利茨矩阵 第3题:爱生气的书店老板 第4题:翻转图像 第5题:有效的数独 第6题:无重复字符的最长子串 第7题:区域和检索 - 数组不可变 第8题:二维区域和检索 ...
- 力扣(LeetCode)刷题,简单+中等题(第31期)
目录 第1题:同构字符串 第2题:最后一块石头的重量 第3题:最小路径和 第4题:键盘行 第5题:存在重复元素 II 第6题:两数相加 第7题:三个数的最大乘积 第8题:等价多米诺骨牌对的数量 第9题 ...
- 力扣(LeetCode)刷题,简单+中等题(第30期)
目录 第1题:单词规律 第2题:找不同 第3题:在排序数组中查找元素的第一个和最后一个位置 第4题:使用最小花费爬楼梯 第5题:寻找峰值 第6题:字符串中的第一个唯一字符 第7题:两个数组的交集 II ...
- 力扣(LeetCode)刷题,简单+中等题(第29期)
目录 第1题:分割数组为连续子序列 第2题:翻转矩阵后的得分 第3题:寻找旋转排序数组中的最小值 第4题:乘积最大子数组 第5题:不同路径 第6题:判断路径是否相交 第7题:摆动序列 第8题:单调递增 ...
- 力扣(LeetCode)刷题,简单+中等题(第28期)
目录 第1题:翻转单词顺序 第2题:顺时针打印矩阵 第3题:总持续时间可被 60 整除的歌曲 第4题:字符串的最大公因子 第5题:上升下降字符串 第6题:将数组分成和相等的三个部分 第7题:可被 5 ...
最新文章
- ORACLE 创建作业JOB例子
- Java中ThreadPoolExecutor的参数理解
- python3 获取当前日期_python3获取日期
- 电商、快递最后一公里的解决方案
- java 的function_Function方法-java
- 重磅!华为方舟编译器招募 2000 程序员!
- Sismics Reader: Google Reader的一个本地替代品
- 获取Element UI中button组件的ID值
- idea swagger生成接口文档_Springboot结合swagger-ui自动生成接口文档
- 【脑电信号】基于matlab小波变换DWT脑电信号ECG去噪【含Matlab源码 1622期】
- spark java jar 依赖_spark提交依赖jar包的解决方法
- 游戏必备组件有哪些_抖音直播互动游戏有哪些?直播间热场互动必备的5个小游戏...
- 单片机制作时钟倒计时
- python实现文本翻译
- Access键盘快捷键大全(一)
- 编译出现错误:incomplete type ‘WebsocketSession’ used in nested name specifier。
- 【新书推荐】【2011.06】唐缺:不一样的推理密谋全集(套装共7册)
- IC人物志-冯·诺依曼54年传奇:上帝让他开挂?
- 肯塔基大学计算机科学,西肯塔基大学计算机专业
- 社区公共安全治理探索:达观舆情信息智能处理解决方案
热门文章
- 计算机一级msoffice考试操作题教程,2014年计算机一级考试MSOffice第三章考点解析 10...
- 计算机图形学的应用虚拟现实相关,虚拟现实技术中计算机图形学的应用——三维计算机图形.doc...
- cp1025支持linux,HP LaserJet Pro CP1025 系列彩 技术规格 | HP®People's Republic of China
- 互联网IT就业市场,你要说最有市场的一定是它,linux内核视频教程全套
- mysql集群重启失败_Mysql集群重启失败
- 【jenkins】创建一个project基础配置、自动化邮件发送、pytest_terminal_summary收集结果
- solidworks中加入参考图纸图片
- 2015-2016-1 学期《软件工程》第4次作业
- 一文搞定选择排序算法
- 利用jsp写输入表单制作简历