Please enable Javascript to view the contents

剑指office(九)跳台阶扩展问题

 ·  ☕ 1 分钟  ·  🎅 YSL

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

示例1

输入

3

返回值

4
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
class Solution {
public:
    int jumpFloorII(int number) {
        if(number<2)
            return 1;
        int result = 1;
        for(int i = 1;i<number;i++)
        {
            result *= 2;
        }
        return result;
    }
};
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
class Solution {
public:
    int jumpFloorII(int number) {
        if(number<2)
            return 1;
        vector<int> dp(number+1,0);
        dp[0]=dp[1]=1;
        for(int i = 2;i<=number;i++)
        {
            for(int j=0;j<i;j++)
            {
                dp[i] += dp[j];
            }
        }
        return dp[number];
    }
};
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
class Solution {
public:
    int jumpFloorII(int number) {
        if(number<2)
            return 1;
        int result = 1;
        for(int i=2;i<=number;i++)
        {
            result = result<<1;//左移乘 右移除
        }
        return result;
    }
};