LeetCode--70. 爬楼梯(动态规划)

1. 题目描述

难度:简单
在这里插入图片描述

2. 题目分析

爬楼梯这道题是一个很典型的问题了,这是一道经典的动态规划的问题:

  • 动态规划
    不难发现,这个问题可以被分解为一些包含最优子结构的子问题,即它的最优解可以从其子问题的最优解来有效地构建,我们可以使用动态规划来解决这一问题。
    在这里插入图片描述
    时间复杂度O(n), 空间复杂度O(n)。

3. C语言实现

代码如下:

int climbStairs(int n){
    if(n == 1) return 1;
    int* dp = (int *)malloc(sizeof(int)*(n+1));
    dp[1] = 1;
    dp[2] = 2;
    for(int i = 3; i <= n; i++){
        dp[i] = dp[i-1] + dp[i-2];
    }
    return dp[n];
}

运行结果为:
在这里插入图片描述

发布了163 篇原创文章 · 获赞 188 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_42580947/article/details/104956423