【贪心】605. 种花问题
605. 种花问题
难度简单381
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
给你一个整数数组 flowerbed
表示花坛,由若干 0
和 1
组成,其中 0
表示没种植花,1
表示种植了花。另有一个数 n
,能否在不打破种植规则的情况下种入 n
朵花?能则返回 true
,不能则返回 false
。
示例 1:
输入:flowerbed = [1,0,0,0,1], n = 1 输出:true
示例 2:
输入:flowerbed = [1,0,0,0,1], n = 2 输出:false
提示:
1 <= flowerbed.length <= 2 * 104
flowerbed[i]
为0
或1
flowerbed
中不存在相邻的两朵花0 <= n <= flowerbed.length
解析:
1.贪心
【思路】
从左向右遍历花坛,在可以种花的地方就种一朵,能种就种(因为在任一种花时候,不种都不会得到更优解),就是一种贪心的思想
这里可以种花的条件是:
自己为空
左边为空 或者 自己是最左
右边为空 或者 自己是最右
最后判断n朵花是否有剩余,为了效率起见,可以在种花的过程中做判断,一旦花被种完就返回true
class Solution {
public:bool canPlaceFlowers(vector<int>& flowerbed, int n) {int total=0;int h=flowerbed.size();for (int i=0;i<h;i++){//顺序不能乱,先判断是不是i==0或者i==h-1 是则不执行||后面的内容if(flowerbed[i] == 0 && (i == 0 || flowerbed[i-1] == 0) && (i == h-1 || flowerbed[i+1] == 0)) {total++;flowerbed[i]=1;}}if(total>=n) return true;else return false; }
};
2.前后添0,统一判断条件
class Solution {
public:bool canPlaceFlowers(vector<int>& flowerbed, int n) {flowerbed.insert(flowerbed.begin(),0);flowerbed.insert(flowerbed.end(),0);int h=flowerbed.size();int total=0;for (int i=0;i<h-2;i++){if(flowerbed[i]==0 &&flowerbed[i+1]==0&&flowerbed[i+2]==0){flowerbed[i+1]=1;total++;}}if (total>=n) return true;else return false;}
};
【贪心】605. 种花问题相关推荐
- 605. 种花问题(贪心算法)
605. 种花问题 题目描述: 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给你一个整数数组 flowerbed 表示花 ...
- 通俗易懂:贪心算法(三):习题练习 (力扣605种花问题、122买卖股票的最佳时机)
看完本文,可以顺便解决leetcode以下两个题目: 605.种花问题
- 605. 种花问题003(贪心算法+思路+详解)
一:题目 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 ...
- leetcode 605. 种花问题(贪心算法)
假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花 ...
- leetcode 605 种花问题 (c++和python)
目录 题目 思路 c++ python 题目 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给你一个整数数组 flower ...
- 数组:605.种花问题
题目描述: 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给你一个整数数组 flowerbed 表示花坛,由若干 0 和 ...
- LeetCode 605. 种花问题
1. 题目 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1 ...
- LeetCode 605 种花问题
题目描述 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花卉不能种植在 相邻的地块上,它们会争夺水源,两者都会死去.给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表 ...
- 力扣 leetcode 605. 种花问题 (python)
Topic 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 ...
最新文章
- git 拉去merged 仓库的代码步骤
- python爬虫源码怎么使用_Python爬虫具体应该怎么使用?
- PPT中视频投影问题
- 一个关于导出excel模板的实例
- MacOS录制GIF/录屏的工具
- H.264码率控制机制
- SQL运行速度慢?查查中间件
- python爬虫京东评论_python爬京东评论
- Fiddler安装教程(图文版)
- Arcgis Server开发使用query报错
- bufferedreader读取中文乱码_Python OpenCV与中文相关的三个常见问题
- 从APP到API:金融科技C端到B端的思考
- python网络爬虫网易云音乐guihub_GitHub - GreatV/CloudMusic-Crawler: 网易云音乐爬虫,数据可视化。...
- 如何面对大容量的数据存储
- #UML# Astah+Doxygen 将C++源码映射为类图
- 2017年11月19日实验感想
- 斐讯w2Android Wear,有人研究过W2的连接QRcode吗?
- 树洞程序php,微信公众平台开发(65) 微博树洞_PHP教程
- 脚本(script)——通俗易懂去理解
- Testlink 使用步骤
热门文章
- linux ls和cd命令详解,Linux基础cd、pwd和ls命令
- IBM Rational software Architect 9.0安装包百度网盘
- 服务器虚拟化iecs,中兴通讯中标中国电信2012云计算集采
- 外汇平台正规排行榜 Flyerinternational稳居前三
- 2021玉林芳草中学高考成绩查询,「分数线」2020年成都玉林中学招生录取分数线...
- Python基础篇学习
- 用c 语言求纸对折的次数,纸张对折新纪录:13次
- 【原创】软件测试经验图谱硬技能之业务逻辑
- 看完这一篇,你也可以自如地掌握字节码插桩
- QT5串口编程——编写简单的上位机