青蛙跳台阶
package LeetcCode.青蛙跳台阶;
public class NumWays {
public static void main(String[] args) {
Solution solution = new Solution();
System.out.println(solution.numWays2(100));
}
}
class Solution {
public int numWays0(int n) {
int count = 0;
if(n <= 1){
return 1;
}
if(n == 2){
return 2;
}
count = numWays0(n-1)+numWays0(n-2);
return count;
}
public int numWays1(int n) {
if(n == 0|| n == 1){
return 1;
}
int[] countNum = new int[n];
countNum[0] = 1;
countNum[1] = 2;
for(int i = 2; i < n; i++){
countNum[i] = (countNum[i-1] + countNum[i-2])%1000000007;
}
return countNum[n-1];
}
public int numWays2(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;
}
}