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

如果0的相邻两个数都是0,则可以种植

C++(16ms):
 1 class Solution {
 2 public:
 3     bool canPlaceFlowers(vector<int>& nums, int n) {
 4         int len  = nums.size() ;
 5         for(int i = 0 ; i < len ; i++){
 6             if (!nums[i] && (i==0 || !nums[i-1]) && (i==len-1 || !nums[i+1])){
 7                 n-- ;
 8                 nums[i] = 1 ;
 9             }
10                 
11         }
12         return n <= 0 ;
13     }
14 };

 

posted @ 2017-09-27 16:19  __Meng  阅读(142)  评论(0编辑  收藏  举报