Can Place Flowers
2017-09-23 14:25
183 查看
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:
Example 2:
Note:
The input array won't violate no-adjacent-flowers rule.
The input array size is in the range of [1, 20000].
n is a non-negative integer which won't exceed the input array size.
思路
1.如果第i个元素没有种花,那么当其相邻的两个位置上的元素为0时可以种下。
2.对于第一个位置和最后一个位置,都只有一个相邻的元素。可以把0作为第一个位置的左邻,最后一个位置的右邻
3.遍历数组,记录可以种花的位置总数,当总数等于n了说明已经足够,可以停止遍历。
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:
The input array won't violate no-adjacent-flowers rule.
The input array size is in the range of [1, 20000].
n is a non-negative integer which won't exceed the input array size.
思路
1.如果第i个元素没有种花,那么当其相邻的两个位置上的元素为0时可以种下。
2.对于第一个位置和最后一个位置,都只有一个相邻的元素。可以把0作为第一个位置的左邻,最后一个位置的右邻
3.遍历数组,记录可以种花的位置总数,当总数等于n了说明已经足够,可以停止遍历。
public class CanPlaceFlowers { public boolean canPlaceFlowers(int[] nums, int n) { int num = 0; for(int i=0; i<nums.length-1 && num < n; i++) { if(nums[i] == 0) { int next = (i == nums.length-1)?0:nums[i+1]; int pre = (i == 0)?0:nums[i-1]; if(next == 0 && pre == 0) { num++; nums[i] = 1; } } } return num == n; } }
相关文章推荐
- Can Place Flowers
- LeetCode:Can Place Flowers - 花坛插花
- leetcode 605[easy]---Can Place Flowers
- [Leetcode] 605. Can Place Flowers 解题报告
- Can Place Flowers
- leetcode -- 605. Can Place Flowers 【边界处理 + 数学规律】
- Can Place Flowers
- 605. Can Place Flowers
- LeetCode 605. Can Place Flowers
- Leetcode 605 Can Place Flowers
- 605. Can Place Flowers
- Array-Can Place Flowers
- 605. Can Place Flowers
- LeetCode 605.Can Place Flowers
- [leetcode]: 605. Can Place Flowers
- LeetCode刷题【Array】 Can Place Flowers
- 605. Can Place Flowers
- 【leetcode】605. Can Place Flowers(Python & C++)
- leet code 605 Can Place Flowers
- LeetCode-605:Can Place Flowers (可放置花的数量)