[leetcode]605. Can Place Flowers能放花吗

Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, flowers cannot be planted in adjacent plots - they would compete for water and both would die.

Given a flowerbed (represented as an array containing 0 and 1, where 0 means empty and 1 means not empty), and a number n, return if n new flowers can be planted in it without violating the no-adjacent-flowers rule.

Example 1:

Input: flowerbed = [1,0,0,0,1], n = 1
Output: True

Example 2:

Input: flowerbed = [1,0,0,0,1], n = 2
Output: False

Note:

  1. The input array won‘t violate no-adjacent-flowers rule.
  2. The input array size is in the range of [1, 20000].
  3. n is a non-negative integer which won‘t exceed the input array size.

题意:

给定一个花圃(1代表已种有花,0表示空), 规定花不能相邻。 问新来的n束花能否被种到该花圃。

Solution1: Greedy

扫给定数组,只要满足条件就插个1(种朵花), 直到n==0(新来花都种下了) 或者数组扫完。

明显的,扫到一个坑为0, 且其左边为0,右边为0, 该坑就可以种花

同时注意左右边界的特殊处理, (1)如果该坑为front, 且其右边为0, 该坑可以种花

(2)如果该坑为tail, 且其左边为0, 该坑可以种花

code

 1 class Solution {
 2     public boolean canPlaceFlowers(int[] flowerbed, int n) {
 3         int i = 0;
 4         while( i < flowerbed.length && n > 0 ){
 5             if (flowerbed[i]==0 && (i==0 || flowerbed[i-1]==0) &&  (i==flowerbed.length-1 || flowerbed[i+1]==0)){
 6                 flowerbed [i] = 1;
 7                 n--;
 8             }
 9             i++;
10         }
11         return n == 0;
12     }
13 }

原文地址:https://www.cnblogs.com/liuliu5151/p/10807438.html

时间: 2024-08-06 20:50:30

[leetcode]605. Can Place Flowers能放花吗的相关文章

Leetcode - 605 - Can Place Flowers

Leetcode - 605 - Can Place Flowers 605. Can Place Flowers Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, flowers cannot be planted in adjacent plots - they would compete for water and both would di

[LeetCode] Can Place Flowers 可以放置花

Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, flowers cannot be planted in adjacent plots - they would compete for water and both would die. Given a flowerbed (represented as an array containing 0

605. Can Place Flowers【easy】

605. Can Place Flowers[easy] Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, flowers cannot be planted in adjacent plots - they would compete for water and both would die. Given a flowerbed (represe

【Leetcode】605. Can Place Flowers

Description Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, flowers cannot be planted in adjacent plots - they would compete for water and both would die. Given a flowerbed (represented as an array

605. Can Place Flowers(LeetCode)

Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, flowers cannot be planted in adjacent plots - they would compete for water and both would die. Given a flowerbed (represented as an array containing 0

605. Can Place Flowers种花问题【leetcode】

Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, flowers cannot be planted in adjacent plots - they would compete for water and both would die. Given a flowerbed (represented as an array containing 0

605. Can Place Flowers

Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, flowers cannot be planted in adjacent plots - they would compete for water and both would die. Given a flowerbed (represented as an array containing 0

Leetcode 605.种花问题

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

hdu 4614 Vases and Flowers

http://acm.hdu.edu.cn/showproblem.php?pid=4614 题意:有N个花瓶,标号为0-N-1,往每一个花瓶放一朵花,然后有M个操作,输入a,b,c,如果a==1表示从b开始放花,期间有花就跳过,直到结束,如果没有放入一朵花,则输出“Can not put any one.”,否则输入第一朵花放的位置和最后一朵花放的位置. 如果a==2 则输出拔掉的花的朵数. 1 #include <cstdio> 2 #include <cstring> 3 #