Can Place Flowers - Array - Easy - LeetCode
💻 coding

Can Place Flowers - Array - Easy - LeetCode

1 min read 204 words
1 min read
ShareWhatsAppPost on X
  • 1The problem involves determining if n new flowers can be planted in a flowerbed without violating the no-adjacent-flowers rule.
  • 2The input flowerbed is represented as an array of 0s and 1s, where 0 indicates an empty plot and 1 indicates a planted plot.
  • 3The solution has a time complexity of O(n) and a space complexity of O(1), making it efficient for large input sizes.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The problem involves determining if n new flowers can be planted in a flowerbed without violating the no-adjacent-flowers rule."

Can Place Flowers - Array - Easy - LeetCode

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 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.

public class Solution {
 public bool CanPlaceFlowers(int[] flowerbed, int n) {
 int count = 0;
 if(n==0){
 return true;
 }
 
 if(flowerbed.Length==0){
 return false;
 }
 
 if(flowerbed.Length==1){
 return n==1 && flowerbed[0]==0;
 }
 
 
 for(int i=0;i<flowerbed.Length;i++){
 if(i==0){
 if(flowerbed[i] == 0 && flowerbed[i+1]==0){
 flowerbed[i]=1;
 count++;
 }
 }
 else if(i==flowerbed.Length-1){
 if(flowerbed[i-1] == 0 && flowerbed[i]==0){
 flowerbed[i]=1;
 count++;
 }
 }
 else if(flowerbed[i-1] == 0 && flowerbed[i] == 0 && flowerbed[i+1]==0){
 flowerbed[i]=1;
 count++;
 }
 }
 
 return count>=n;
 }
}

Time Complexity: O(n)

Space Complexity: O(1)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 26 September 2020 · 1 min read · 204 words

Part of AskGif Blog · coding

You might also like