题解 | #跳台阶扩展问题#

https://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387

// 和上面跳台阶不一样的是,上一题只能跳 1或2级,这一题可以跳1~n级
// res[n] = res[n-1]+...+res[1]+1  //后面这个加1,表示直接跳n级阶梯
// res[n-1] = res[n-2]+...+res[1] +1 //后面这个加1,表示直接跳n级阶梯
function jumpFloorII(number)
{
    // write code here
    let n = number
    if(n===1) return 1
    let res = new Array(n+1).fill(0) //为什么是n+1,因为舍弃0下标(0下标没有意义),而且要保证n个数。
    res[0] = null
    res[1] = 1 //一级台阶只有一种跳法
    
    for(let i = 2 ; i<= n ; i++){ 
        for(let j=1;j<i;j++){     
            res[i] += res[j]
        }
        res[i] += 1 //前面计算的是res[n] = res[n-1]+...+res[1],最后+1要在这里操作
    }
    return res[n]
}

全部评论

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务