结束边界连续两个0和数组只有一个[0]情况
来源:3-6 种花问题-原理讲解

翌子涵
2019-02-14
原代码LeetCode测试用例不予通过
4回答
-
翌子涵
提问者
2019-02-14
根据LeetCode测试用例修改的代码
export default (arr, n) => { let max = 0 for (let i = 0, len = arr.length; i < len; i++) { if (arr[i] === 0) { // 第一位和第二位都为 0 或者只存在一个 0 if ((i === 0 && arr[1] === 0) || (i === 0 && len === 1)) { // 计数累加 max++ // 直接跳过下一个索引 i++ // 当前索引左侧和右侧都为 0 } else if (arr[i - 1] === 0 && arr[i + 1] === 0) { max++ i++ // 最后一位和倒数第二位都为 0 } else if (i === len - 1 && arr[i - 1] === 0) { max++ } } } return max >= n}
212019-02-25 -
Charless
2019-06-05
let canPlaceFlowers = (flowerbed, n) => {
let max = 0;
for(let i = 0, len = flowerbed.length; i < len; i++){
if(flowerbed[i] === 0){
if(i === 0 && (flowerbed[1] === 0 || flowerbed[1] === undefined)){
max++;
i++;
}else if(flowerbed[i-1] === 0 && (flowerbed[i+1] === 0 || flowerbed[i+1] === undefined)){
max++;
i++;
}
}
};
return (max >= n);
};10 -
nkliyc
2019-06-15
export default (flowerbed, n) => {
//申明花坛最多可种多少
let max = 0
for (let i = 0, len = flowerbed.length; i < len; i++) {
if(flowerbed[i] === 0) {
//满足种植的条件:1、左边界 10; 2、右边界 01; 3、中间 010。
if((flowerbed[i-1] === 0 || flowerbed[i-1] === undefined) && (flowerbed[i+1] === 0 || flowerbed[i+1] === undefined)) {
max++
i++
}
}
}
return max >= n
}
00 -
布罗利00
2019-05-04
var canPlaceFlowers = function(flowerbed, n) { for (let i = 0, l = flowerbed.length; i < l; i++) { if (!flowerbed[i] && !flowerbed[i - 1] && !flowerbed[i + 1]) { flowerbed[i] = 1 n-- } } return n <= 0 };
00
相似问题