剑指offer──跳台阶

题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
在这里插入图片描述
思路:
一次只能跳一阶或两阶
1.如果第一次跳了一阶,那么还剩下n-1个台阶,跳法为JumpFloor(n-1)
2.如果第一次跳了两阶,那么还剩下n-2个台阶,跳法为JumpFloor(n-2)
3.由1和2可以得出总跳法JumpFloor(n) = JumpFloor(n - 1) + JumpFloor(n - 2)
4.当只剩下一个台阶时,只有一种跳法;当还剩下2个台阶时,可以有2种跳法

代码:

public class Solution {
    public int JumpFloor(int target) {
    	//当只剩下一个台阶时,只有一种跳法
        if(target == 1) return 1;
        //剩下2个台阶时,可以有2种跳法
        if(target == 2) return 2;
        //总跳法JumpFloor(n) = JumpFloor(n - 1) + JumpFloor(n - 2)
        return JumpFloor(target - 1) + JumpFloor(target - 2);
    }
}
发布了49 篇原创文章 · 获赞 3 · 访问量 2312

猜你喜欢

转载自blog.csdn.net/xiao_count/article/details/102872453