一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。
求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
示例 1:
输入:n = 2
输出:2
示例 2:
输入:n = 7
输出:21
提示:
0 <= n <= 100
解题思路
- 楼梯和我们的数据结构什么可以联系起来呢?数组。没错就是数组。
- 然后呢?? 然后不会了。。。。。。。
- 看答案。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IkbuOgIo-1592652679169)(http://note.youdao.com/yws/res/15345/4E1C4A0E10254A629C3916C1E321427B)] - 好的那就是有思路了,来写一下。
- Show me Code
class Solution {
public int numWays(int n) {
int[] lts = new int[n+1];
if (n< 2){
if(n ==0){
return 0;
}else{
return 1;
}
}else{
lts[0] = 0;
lts[1] = 1;
for(int i =2 ;i<n+1 ;i++){
lts[i] = (lts[i-1] +lts [i-2]) % 1000_000_007;
}
return lts[n];
}
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lEsHUSL1-1592652679170)(http://note.youdao.com/yws/res/15353/B84757ADC26B4D35AAB6284170965DD7)]
好吧!!
6. 正确答案
class Solution {
public int numWays(int n) {
int[] lts = new int[n+1];
if (n< 2){
if(n ==0){
return 1;
}else{
return 1;
}
}else{
lts[0] = 1;
lts[1] = 1;
for(int i =2 ;i<n+1 ;i++){
lts[i] = (lts[i-1] +lts [i-2]) % 1000_000_007;
}
return lts[n];
}
}
}
会托马斯大旋转的青蛙就是牛逼!!!!!
题目来源
https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/