Go•can-place-flowers/solution.go
package main
func canPlaceFlowers(flowerbed []int, n int) bool {
for index := 0; index < len(flowerbed) && n > 0; index++ {
leftEmpty := index == 0 || flowerbed[index-1] == 0
rightEmpty := index == len(flowerbed)-1 || flowerbed[index+1] == 0
if flowerbed[index] == 0 && leftEmpty && rightEmpty {
flowerbed[index] = 1
n--
}
}
return n == 0
}
Python•can-place-flowers/solution.py
class Solution:
def canPlaceFlowers(self, flowerbed: list[int], n: int) -> bool:
if n == class="syntax-number">0:
return True
for index, plot in enumerate(flowerbed):
left_empty = index == class="syntax-number">0 or flowerbed[index - class="syntax-number">1] == class="syntax-number">0
right_empty = index == len(flowerbed) - class="syntax-number">1 or flowerbed[index + class="syntax-number">1] == class="syntax-number">0
if plot == class="syntax-number">0 and left_empty and right_empty:
flowerbed[index] = class="syntax-number">1
n -= class="syntax-number">1
if n == class="syntax-number">0:
return True
return False
TypeScript•can-place-flowers/solution.ts
function canPlaceFlowers(flowerbed: number[], n: number): boolean {
for (let index = class="syntax-number">0; index < flowerbed.length && n > class="syntax-number">0; index += class="syntax-number">1) {
const leftEmpty = index === class="syntax-number">0 || flowerbed[index - class="syntax-number">1] === class="syntax-number">0;
const rightEmpty = index === flowerbed.length - class="syntax-number">1 || flowerbed[index + class="syntax-number">1] === class="syntax-number">0;
if (flowerbed[index] === class="syntax-number">0 && leftEmpty && rightEmpty) { flowerbed[index] = class="syntax-number">1; n -= class="syntax-number">1; }
}
return n === class="syntax-number">0;
}