郴州网站优化公司,免费网站qq抓取,网站建设与规划学的心得体会,微信小程序教程目录 1.题目2.思路3.代码实现#xff08;Java#xff09; 1.题目
假设有一个很长的花坛#xff0c;一部分地块种植了花#xff0c;另一部分却没有。可是#xff0c;花不能种植在相邻的地块上#xff0c;它们会争夺水源#xff0c;两者都会死去。给你一个整数数组 flowe… 目录 1.题目2.思路3.代码实现Java 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 * 104 flowerbed[i] 为 0 或 1 flowerbed 中不存在相邻的两朵花 0 n flowerbed.length
2.思路
1贪心算法
3.代码实现Java
//思路1————贪心算法
class Solution {public boolean canPlaceFlowers(int[] flowerbed, int n) {int length flowerbed.length;//上一个花所在的下标int prev -1;int res 0;for (int i 0; i length; i) {if (flowerbed[i] 1) {if (prev 0) {res i / 2;} else {res (i - prev - 2) / 2;}prev i;}}if (prev 0) {//数组 flowerbed 的值全为 0res (length 1) / 2;} else {res (length - prev - 1) / 2;}return res n;}
}