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

方法一:
递推

思路:dp[i]表示到达第 i 级台阶的方案数。
            因为一次可以跳上1级台阶,也可以跳上2级,所以 i 级台阶可以是从i-1或i-2级台阶过来的。
             因此 i 级台阶的方案数等于从第i-1和第i-2级台阶的方案数之和。(即




class Solution {
public:
    int jumpFloor(int number) {
        vector<int> dp(number+1,0);
        dp[1]=1;//初始化
        dp[2]=2;
        for(int i=3;i<=number;i++){//遍历
            dp[i]=dp[i-1]+dp[i-2];
        }
        return dp[number];
    }
};
时间复杂度:
空间复杂度:


方法二:
递推+空间优化

思路:
        沿用方法一的思路,做空间优化。
        设x=1,y=2分别是台阶数为1和2的情况(即初始化)。
       
class Solution {
public:
    int jumpFloor(int number) {
        if(number<=1)
            return number;
        int x=1,y=2,t;//初始化
        for(int i=3;i<=number;i++){//遍历
            t=y;
            y=x+y;
            x=t;//x赋值为原先的y
        }
        return y;
    }
};

时间复杂度:
空间复杂度: