package leetcode.array; /** * Created by w84108989 on 2019/2/21. */ //假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 // // 给定一个花坛(表示为一个数组包含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 public class flower_605 { public static void main(String[] args) { int nums[] = {0,0,0,0}; System.out.println(canPlaceFlowers(nums,3)); } public static boolean canPlaceFlowers(int[] flowerbed,int n){ // if (flowerbed.length ==1 && n == 1 && flowerbed[0] == 0){ // return true; // } if (n == 0){ return true; } if (flowerbed.length == 1){ return n == 1 && flowerbed[0] == 0; } if (flowerbed[0] == 0 && flowerbed[1] == 0){ flowerbed[0] = 1; n--; } int i = 1; while (i < flowerbed.length - 2){ if (flowerbed[i] == 1){ i++; continue; }else { if (flowerbed[i] == 0 && flowerbed[i+1] == 0 && flowerbed[i+2] == 0){ flowerbed[i+1] = 1; n--; i += 2; } else { i++; } } } if (flowerbed[flowerbed.length - 1] == 0 && flowerbed[flowerbed.length - 2] == 0){ n--; } return n <= 0; } }
leetcode_605
最新推荐文章于 2021-04-20 16:59:25 发布