题目
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
示例 1:
输入:n = 2
输出:2
示例 2:
输入:n = 7
输出:21
提示:
0 <= n <= 100
题解
其实这个题目就是斐波那契数列,但是用到了记忆化
这么一说 不就有点dp的味道了吗,对,没错。其实算法间没那么清晰的界限。
class Solution {
public int numWays(int n) {
int curr = 1, next = 1;
while(n-- > 0) {
next = next%1000000007 + curr;
curr = next - curr;
}
return curr;
}
}