跳台阶

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

解题思路:

定义

dp[n][0] 表示跳上第n级台阶时是跳1级上来的

dp[n][1]表示跳上第n级台阶时是跳2级上来的

转义方程:

dp[n][0] = dp[n-1][0] + dp[n-1][1]

dp[n][1] = dp[n-2][0] + dp[n-2][1]

class Solution {
public:

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

  

 

posted @ 2019-03-26 21:29  tcgoshawk  阅读(155)  评论(0编辑  收藏  举报