剑指 Offer 10- II. 青蛙跳台阶问题
题目:
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
示例1:
输入:n = 2
输出:2
示例2:
输入:n = 7
输出:21
示例3:
输入:n = 0
输出:1
解题思路:
和 剑指 Offer 10- I. 斐波那契数列 题基本一样,只是初始值不同而已。
代码如下:
/**
* 执行结果:通过
* 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
* 内存消耗:35.1 MB, 在所有 Java 提交中击败了69.91%的用户
* 通过测试用例:51 / 51
*/
class Solution {
public int numWays(int n) {
if(n==0 || n==1){
return 1;
}
int a=1,b=1,c=0;
for(int i=2;i<=n;i++){
c=(a+b)%1000000007;
a=b;
b=c;
}
return c;
}
}