剑指offer打卡2-跳台阶(java版) 1. 考察知识点2. 题目3. 思路4. 代码实现 1. 考察知识点 递归 2. 题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 3. 思路 开始找规律。。。 跳1阶——1种方式跳2阶——2种方式跳3阶——3种方式跳4阶——5种方式跳5阶——8种方式跳6阶——13种方式 这时就会发现规律了,符合斐波那契数列 不知道斐波那契的小伙伴可以参考我的上一篇 剑指offer打卡1-斐波那契数列(java版). 4. 代码实现 递归版 public int JumpFloor(int target) { if (target < 1) return -1; if (target < 3) return target; return JumpFloor(target-1)+JumpFloor(target-2); } 普通版(耗时更少) public class Solution { public int JumpFloor(int target) { if (target < 1) return -1; if (target < 3) return target; int one = 1, two = 2; int result = 0; for (int i = 3; i <= target; i++) { result = one + two; one = two; two = result; } return result; } }