跳台阶

33 阅读1分钟

描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

要求:时间复杂度:O(n) ,空间复杂度: O(1)

示例1

输入:

2

返回值:

2

说明:

青蛙要跳上两级台阶有两种跳法,分别是:先跳一级,再跳一级或者直接跳两级。因此答案为2       

示例2

输入:

7

返回值:

21

思路:

image.png

具体做法:

  • step 1:低于2项的数列,直接返回n。
  • step 2:初始化第0项,与第1项分别为0,1.
  • step 3:从第2项开始,逐渐按照公式累加,并更新相加数始终为下一项的前两项。
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param number int整型 
 * @return int整型
 */
function jumpFloor( number ) {
    // write code here
    // console.log(number)
    if(number ==1 ||number ==2){
        return number;
    }
    let dp = []
    dp[1] = 1;
    dp[2] = 2;
    for(let i=3;i<=number;i++){
        dp[i] = dp[i-1] + dp[i-2]
    }
    return dp[number]
}
module.exports = {
    jumpFloor : jumpFloor
};