BM63 跳台阶

描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

数据范围:Java练习题—动态规划(二)_java

要求:时间复杂度:Java练习题—动态规划(二)_java_02 ,空间复杂度: Java练习题—动态规划(二)_java_03

示例1

输入:

2
  • 1.

返回值:

2
  • 1.

说明:

青蛙要跳上两级台阶有两种跳法,分别是:先跳一级,再跳一级或者直接跳两级。因此答案为2
  • 1.

示例2

输入:

7
  • 1.

返回值:

21
  • 1.


Java代码

import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param number int整型
     * @return int整型
     */
    public int jumpFloor (int number) {
        int dp1 = 1, dp2 = 1;
        for (int i = 2; i <= number; i++) {
            dp1 = dp2 + dp1;
            dp2 = dp1 - dp2;
        }
        return dp1;
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.


import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param number int整型
     * @return int整型
     */
    int[] dp = new int[40];
    public int jumpFloor(int num) {
        if (dp[num] != 0) {
            return dp[num];
        }
        if (num == 1 || num == 2) {
            dp[num] = num;
            return dp[num];
        } else {
            int count = jumpFloor(num - 1) + jumpFloor(num - 2);
            dp[num] = count;
            return dp[num];
        }
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.