美文网首页
[刷题防痴呆] 0605 - 种花问题 (Can Place F

[刷题防痴呆] 0605 - 种花问题 (Can Place F

作者: 西出玉门东望长安 | 来源:发表于2021-12-27 02:15 被阅读0次

题目地址

https://leetcode.com/problems/can-place-flowers/

题目描述

605. Can Place Flowers

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.

Given an integer array flowerbed containing 0's and 1's, where 0 means empty and 1 means not empty, and an integer n, return if n new flowers can be planted in the flowerbed 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

思路

  • 贪心.
  • for循环, 当前index是0并且前后都为0, 即可种.
  • 注意, 第0位和最后一位要单独判断.

关键点

代码

  • 语言支持:Java
class Solution {
    public boolean canPlaceFlowers(int[] flowerbed, int n) {
        if (n == 0) {
            return true;
        }
        if (flowerbed == null || flowerbed.length == 0) {
            return true;
        }

        int count = 0;
        for (int i = 0; i < flowerbed.length; i++) {
            if (flowerbed[i] == 1) {
                continue;
            }
            int pre = (i == 0) ? 0 : flowerbed[i - 1];
            int next = (i == flowerbed.length - 1) ? 0 : flowerbed[i + 1];
            if (pre == 0 && next == 0) {
                flowerbed[i] = 1;
                count++;
            }
        }

        return count >= n;
    }
}

相关文章

网友评论

      本文标题:[刷题防痴呆] 0605 - 种花问题 (Can Place F

      本文链接:https://www.haomeiwen.com/subject/uaptqrtx.html