题解 | #N阶楼梯上楼问题#

N阶楼梯上楼问题

本题为经典的动态规划问题

动态规划相比于暴力的递归解法的区别在于动态规划法合理利用已经求解过的子问题用来求解最终的问题

动态规划的关键点在:
  1. 记忆数组:dp用来记忆每次求解的子问题
  2. 递推公式:dp[n] = dp[n-1] + dp[n-2];
  3. 初始条件:dp[1]第一阶台阶的登上方法只有一种,dp[2]第二阶台阶的登上方法有两种,以此初始条件进行递推即可
#include <vector>
using namespace std;

int main()
{
    vector<int> dp(90);
    int n;

    while (cin >> n) {
        dp[1] = 1;
        dp[2] = 2;
        for (int i = 3; i <= n; i++) {
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        cout << dp[n] << endl;
    }
    
    return 0;
}



全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务