Leetcode刷题笔记 605. 种花问题
605. 种花问题
时间:2021年1月1日
知识点:贪心
题目链接
题目
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
给你一个整数数组 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 * 104flowerbed[i] 为 0 或 1flowerbed 中不存在相邻的两朵花0 <= n <= flowerbed.length解法:
贪心算法 自己模拟一遍如果当前位置种花了 至少在i+2的位置才能种花如果当前位置没种花 且下个位置也没种花 这个位置可以种花 注意边界的情况否则 那么至少在i+3的位置才能种花代码
//头文件 #include "cheader.h" class Solution { public: bool canPlaceFlowers(vector<int>& flowerbed, int n) { int all = flowerbed.size(); for(int i = 0;i < all;){ if(flowerbed[i] == 1) i+=2; else if(flowerbed[i] == 0){ if(i == all - 1 || flowerbed[i+1] ==0){ n--; i+=2; } else i+=3; } } return n <= 0; } }; int main() { vector<int> flowerbed{1,0,0,0,1}; Solution s; int n = 1; cout<<s.canPlaceFlowers(flowerbed, n)<<endl; return 0; }
123456789101112131415161718192021222324252627282930今天也是爱zz的一天哦!
相关知识
力扣 leetcode 605. 种花问题 (python)
【贪心】605. 种花问题
红色花朵笔刷花卉装饰笔刷盛开鲜花笔刷下载平面广告素材免费下载(图片编号:745538)
力扣打卡2021.1.1种花问题
为浇灌一个半径为10米的花坛,园艺师要在花坛布置若干个旋转喷头,但库房里有浇灌半
调节花期宜早不宜迟,以幼穗分化什么期前采用措施效果最好。
花圈阅读题答案
“花卉与花”这组词的不同表现为()。
从零开始学种花,让新手成为园艺达人的养花技巧
技术人员在苗圃里种植了A、B、C三种花卉,并定期要给三种花卉浇水,A花每5天浇水一次,B花每4天浇水一
网址: Leetcode刷题笔记 605. 种花问题 https://www.huajiangbk.com/newsview3125.html
上一篇: 北京各处冬残奥会主题花坛鲜花置换 |
下一篇: 60万盆鲜花就位!桂林盛装迎新春 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039