Java之《剑指Offer》(最全详细解释):一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法

    科技2022-07-12  140

    上次分析的使用贪心算法太麻烦,现在改用递归吧!


    直接上代码,代码中详解!

    public class Solution { public int JumpFloor(int target) { //典型的递归算法 if(target <= 0){ return 0; }else if(target == 1){ return 1; }else if(target == 2){ return 2; }else{ /** 分析如下: 台阶阶数是1,只有1种跳法:1 台阶阶数是2,有2种跳法,第1次跳1阶,第2次跳1阶;或者是一次跳2阶;2 台阶阶数是3,有3种跳法,第1,2,3次跳1阶;第1次跳1阶,第二次跳2阶;第1次跳3阶;3 有f(3) = f(2) + f(1) 台阶阶数是4,有4种跳法,第1种都跳1阶,第二种,跳1,1,2;第三种跳1,3;第四种,2,2;第五种:4 ……………………………… */ return JumpFloor(target-1) + JumpFloor(target-2); } } }

    虽然现在是刚开学,看着牛客帖子别人收到Offer,确实自己也想要。

    未雨绸缪吧!

    Processed: 0.013, SQL: 8