题解 | #跳台阶扩展问题#
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] }