列表

详情


BM63. 跳台阶

描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

数据范围:
要求:时间复杂度: ,空间复杂度:

示例1

输入:

2

输出:

2

说明:

青蛙要跳上两级台阶有两种跳法,分别是:先跳一级,再跳一级或者直接跳两级。因此答案为2

示例2

输入:

7

输出:

21

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 2ms, 内存消耗: 336KB, 提交时间: 2021-05-16

/**
 * 
 * @param number int整型 
 * @return int整型
 */
int jumpFloor(int number ) {
    // write code here
    int a=1;//n-2阶跳法
    int b=1;//n-1阶跳法
    int c=0;//n阶
    if(number==0||number==1){
        return number;
    }
    for(int i=2;i<=number;i++){
        c=b+a;
        a=b;
        b=c;
    }
    return c;
}

C 解法, 执行用时: 2ms, 内存消耗: 344KB, 提交时间: 2021-05-02

/**
 * 
 * @param number int整型 
 * @return int整型
 */
int jumpFloor(int number ) {
    // write code here
    if (number==0||number==1) return number;
    int a=1,b=1,c;
    for (int i=2;i<=number;i++){
        c=a+b;
        a=b;
        b=c;
    }
    return c;
}

C 解法, 执行用时: 2ms, 内存消耗: 352KB, 提交时间: 2021-04-23

/**
 * 
 * @param number int整型 
 * @return int整型
 */
int jumpFloor(int number ) {
    // write code here
    int dp[number+1];
    dp[0]=1;
    dp[1]=1;
    for(int n=2;n<=number;n++)
    {
        dp[n]=dp[n-1]+dp[n-2];
    }
    return dp[number];
}

C++ 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2021-06-07

class Solution {
public:
    int jumpFloor(int number) {
        if(number <= 2)
        {
            return number;
        }
        vector<int>res(number + 1, 0);
        res[1] = 1;
        res[2] = 2;
        for(int i = 3; i <= number; i++)
        {
            res[i] = res[i - 1] + res[i - 2];
        }
        return res[number];
    }
};

C++ 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2021-05-29

class Solution {
public:
    int jumpFloor(int number) {
        if(number==1) return 1;
        vector<int> dp(number,0);
        dp[0]=1;dp[1]=2;
        for(int i=2;i<number;i++){
            dp[i]=dp[i-1]+dp[i-2];
        }
        return dp[number-1];
    }
};

上一题