题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。
求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
题目分析
首先, 我们想象一共有1个台阶, 我们可走的方式是1种.
如果有2个台阶, 则可走方式为2种(一步一个台阶 或 一次两个台阶到头)
如果有3个台阶, 可走方式为: 有2个台阶时的所有可走方式 + 有1个台阶时的所有可走方式.
为什么?
因为假设一共有N个台阶, N-1到N, 和 N-2到N 都是一步到位的. 但是走法是不同的.
所以我们可以利用递归去解题.
代码
public class Solution { public int JumpFloor(int target) { if (target == 0 || target == 1 || target == 2) return target; return JumpFloor(target - 1) + JumpFloor(target - 2); } }