剑指Offer——跳台阶

解法:
直接用DP就行,因为这里限定了每次只能跳1格或者2格,所以只需要加上dp[i-1]dp[i-2]的情况就行,相当于是状态转移到了i-1i-2的时候可能跳到当前的状态的情况。

class Solution {
public:
    int jumpFloor(int number) {
        vector<int> dp(number+1, 0);
        dp[0] = 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];
    }
};
posted @ 2020-03-06 23:16  夜溅樱  阅读(108)  评论(0编辑  收藏  举报