From software interview series, this leetcode excercise will help you practice for your tech interview. https://leetcode.com/problems/can-place-flowers/
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.
Given an integer array flowerbed
containing 0
's and 1
's, where 0
means empty and 1
means not empty, and an integer n
, return if n
new flowers can be planted in the flowerbed
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
Constraints:
1 <= flowerbed.length <= 2 * 104
flowerbed[i]
is0
or1
.- There are no two adjacent flowers in
flowerbed
. 0 <= n <= flowerbed.length
Result:
Runtime: 0 ms
Memory Usage: 40.5 MB
You are free to continue working on this question, but please note that only your first accepted submission will be counted.
Solution:
class Solution {
public boolean canPlaceFlowers(int[] flowerbed, int n) {
if(flowerbed == null || flowerbed.length == 0 ) return false;
if(n==0 ) return true;
int pos=0;
while(pos < flowerbed.length){
if(flowerbed[pos] == 0 ){
if( (pos == flowerbed.length-1 ) || (0 == flowerbed[pos+1]) ){ //found an spot
n--;
}else{ //adjacent plant afterwards so we move there
pos++;
}
}
if( n ==0 ){
return true;
}
pos+=2;
}
return false;
}
}