# II. 青蛙跳台阶问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。

答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

# 示例 1:

输入:n = 2
输出:2

# 示例 2:

输入:n = 7
输出:21

# 示例 3:

输入:n = 0
输出:1

# 分析

设 dp(i) 为 跳上 i 台阶的跳法

dp(i) = dp(i-1) + dp(i-2)
  • dp(0) = 1
  • dp(1) = 1
  • dp(2) = 2

这道题本质上跟菲波那数列是一样的,只是,初始值不同。

# 代码

var numWays = function(n) {
  let n1 = 1,n2=2,sum=0;
  for(let i=0;i<n;i++){
    sum  = (n1+n2)%1000000007
    n1 = n2
    n2 = sum
  }
  return n1
};