怎么第二种情况不是i+=2,感觉没判断右边界

来源:3-6 种花问题-原理讲解

zhang000

2019-09-09

写回答

2回答

qq_小江南_04298178

2020-03-13

老师这里使用

i<arr.length-1

作为右侧边界判断的写法我的一些用例

expect(canPlaceFlower([1,0,0,0,1,0,0,0,0],3)).toBe(true)

也没测过去


我自己修改成拿 i<arr.length 和 (arr[i+1] ===0||arr[i+1] ==undefined)就好了

const canPlaceFlower = function(arr,n){
    let resultNum = 0
    for(let i=0; i<arr.length;i++){
        if(arr[i] === 0){
            if( i===0 && arr[i+1] ===0){
                resultNum++
                i++
            } else if((arr[i+1] ===0||arr[i+1] ==undefined) && arr[i-1] ===0){
                resultNum++
                i++
            }
        }
    }
    return resultNum>=n
}


1
0

快乐动起来呀

2019-09-12

同学你说的第二种情况是什么呢?你可以增加右边界的测试用例,看看是否能通过测试呢?

0
0

JavaScript版 数据结构与算法

填补前端同学的算法短板,掌握面试中最常见的算法与数据结构

2467 学习 · 395 问题

查看课程