首页 > 其他 > 详细

跳台阶

时间:2019-02-23 14:47:09      阅读:149      评论:0      收藏:0      [点我收藏+]

跳台阶

题目描述

一只青蛙一次可以跳上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);
    }
};

跳台阶

原文:https://www.cnblogs.com/hesper/p/10422549.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!