动态规划

class Solution {
public:
    int jumpFloorII(int number) {
        vector<int>dp{0,1,2};
        for(int i = 3; i <= number;i++){
            int sum = 1;
            for(int j = 0; j<i;j++){
                sum += dp[j];
            }
            dp.push_back(sum);
        }
        return dp[number];
    }
};

排列组合

class Solution {
public:
    int jumpFloorII(int number) {
        if(number == 0 || number == 1) return number;
        return static_cast<double>(pow(2, number - 1));
    }
};