上次分析的使用贪心算法太麻烦,现在改用递归吧!
直接上代码,代码中详解!
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,确实自己也想要。
未雨绸缪吧!