# 605. Can Place Flowers
可以反向思考,例如與其找沒種的 0,不如判斷有種過的 1 ,這樣可以更可以簡潔寫出各種狀況
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.
input: arr = [1,0,0, ...] 1 代表有種花 0 代表沒種花, n 代表新花數量
output: 回傳心花是否可以種完
關鍵是不能種相鄰的花 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.
/**
* @param {number[]} flowerbed
* @param {number} n
* @return {boolean}
*/
var canPlaceFlowers = function(flowerbed, n) {}Edge Case
[0], [0, 1] 之類邊界值
怎麼解
其實很單純我卻想很久邊界值怎麼處理,其實只要判斷前後跟自己是不是 1 ,都是就跳過,不是就代表可以種花
Code
如何改進
後來看到一個更容易理解就是前後都加 0
Last updated
Was this helpful?