https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4

递归

思路简单,但有可能会超时。

  1. public static int jumpFloor1(int target) {
  2. if (target == 1)
  3. return 1;
  4. if (target == 2)
  5. return 2;
  6. return jumpFloor1(target - 1) + jumpFloor1(target - 2);
  7. }

动态规划

https://www.bilibili.com/video/BV1y64y1q7k8?share_source=copy_web

  1. public static int jumpFloor2(int target) {
  2. int[] dp = new int[50];
  3. dp[0] = 1;
  4. dp[1] = 1;
  5. for (int i = 2; i <= target; i++) {
  6. dp[i] = dp[i - 1] + dp[i - 2];
  7. }
  8. return dp[target];
  9. }