跳台阶
跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
斐波那契数列的变形, 非递归版与递归版都多了2 == number的判断
版本一: 非递归版
class Solution {
public:
    int jumpFloor(int number) {
        int fn_1 = 2; 
        int fn_2 = 1;
        int ret = 0;
        
        if (number <= 0) {
            return ret;
        }
        
        if (number == 1) {
            return 1;
        }
        
        if (2 == number) {
            return 2;
        }
        
        for (int i = 2; i < number; i++) {
            ret = fn_1 + fn_2;
            fn_2 = fn_1;
            fn_1 = ret;
        }
        
        return ret;
    }
};
版本二: 递归版
class Solution {
public:
    int jumpFloor(int number) {
        if (0 >= number) {
            return 0;
        }
        
        if (1 == number) {
            return 1;
        }
        
        if (2 == number) {
            return 2;
        }
        
        return jumpFloor(number - 1) + jumpFloor(number - 2);
    }
};
                    
                
                
            
        
浙公网安备 33010602011771号