青蛙跳台阶问题java

n=1--------f(1)=1 { 1 }
n=2--------f(2)=2 {1+1 || 2 }
n=3--------f(3)=f(1)+f(2){可以先走1步然后f(2)种方法
也可以先走两步然后为f(1)种方法 故总方法为f(1)+f(2)
}
n=4---------f(4)=f(2)+f(3){可以先走1步然后有f(3)种方法
也可以先走2步然后为f(2)种方法 故总方法为f(2)+f(4)
}
.
.
.
f(n)=f(n-1)+f(n-2)

class Solution {
    public int numWays(int n) {
        int a=1,b=1,sum;
        for(int i=0;i<n;i++){
            sum=(a+b)%1000000007;
            a=b;
            b=sum;
        }
        return a;
    }
}
发布了23 篇原创文章 · 获赞 1 · 访问量 464

猜你喜欢

转载自blog.csdn.net/qq_40492920/article/details/105212590
今日推荐