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 };