京东——上台阶

    xiaoxiao2021-12-01  25

    上台阶 热度指数:2961时间限制:3秒空间限制:32768K 本题知识点: 递归 动态规划  算法知识视频讲解

    题目描述

    有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法。

    给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100。为了防止溢出,请返回结果Mod 1000000007的值。

    测试样例: 3 返回:2 递归算法超时

    “test.cpp”

    class GoUpstairs { public: int countWays(int n) { // write code here if(n == 0 || n == 1){ return 0; } else if(n == 2){ return 1; } else if(n == 3){ return 2; } return countWays(n-1) + countWays(n-2); } };

    动态规划

    “test.cpp”

    class GoUpstairs { public: int countWays(int n) { // write code here vector<int> arr(n+1); arr[0] = 0; arr[1] = 0; arr[2] = 1; arr[3] = 2; for(size_t i = 4;i < n + 1;i++){ arr[i] = (arr[i-1]+arr[i-2]) % 1000000007; } return arr[n]; } };

    转载请注明原文地址: https://ju.6miu.com/read-679325.html

    最新回复(0)