最简单的动态规划

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

优化一下,只用三个变量

class Solution {
public:
    int jumpFloor(int number) {
        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;
    }
};