动态规划-跳台阶

题目描述

    有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。为了防止溢出,请将结果Mod 1000000007

给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100000。

代码实现

class GoUpstairs {
public:
    int countWays(int n) {//第一次走1台阶,剩下n-1阶,第一次走2台阶,剩下n-2阶
        int *dp = new int[n+1];//所以状态转移方程为 dp[i] = dp[i-1] +dp[i-2];
        dp[0] = dp[1] = 1;
        for (int i=2; i<=n; ++i) {
            dp[i] = (dp[i-1]+dp[i-2])%1000000007;
        }
        return dp[n];
    }
};

    原文作者:动态规划
    原文地址: https://blog.csdn.net/shizheng163/article/details/50986837
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞