代码随想录算法训练营第38天|理论基础|509. 斐波那契数 |70. 爬楼梯 |746. 使用最小花费爬楼梯

代码随想录算法训练营第38天|理论基础|509. 斐波那契数 |70. 爬楼梯 |746. 使用最小花费爬楼梯

详细布置

今天正式开始动态规划!

理论基础

无论大家之前对动态规划学到什么程度,一定要先看 我讲的 动态规划理论基础。

如果没做过动态规划的题目,看我讲的理论基础,会有感觉 是不是简单题想复杂了?

其实并没有,我讲的理论基础内容,在动规章节所有题目都有运用,所以很重要!

如果做过动态规划题目的录友,看我的理论基础 就会感同身受了。

https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html
视频:https://www.bilibili.com/video/BV13Q4y197Wg

509. 斐波那契数

很简单的动规入门题,但简单题使用来掌握方法论的,还是要有动规五部曲来分析。

https://programmercarl.com/0509.%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0.html
视频:https://www.bilibili.com/video/BV1f5411K7mo

class Solution {
public:
    int fib(int n) {
        if(n<=1) return n;
        vector<int>f(n+1);
        f[0]=0;
        f[1]=1;
        for(int i=2;i<=n;i++)
        f[i]=f[i-1]+f[i-2];
        
        return f[n];
    }
};

70. 爬楼梯

本题大家先自己想一想, 之后会发现,和 斐波那契数 有点关系。

https://programmercarl.com/0070.%E7%88%AC%E6%A5%BC%E6%A2%AF.html
视频:https://www.bilibili.com/video/BV17h411h7UH

class Solution {
public:
    int climbStairs(int n) {
        if(n<=1)return n; // 因为下面直接对dp[2]操作了,防止空指针
        vector<int>dp(n+1);

        dp[1]=1;
        dp[2]=2;
        for(int i=3;i<=n;i++) // 注意i是从3开始的
        dp[i]=dp[i-1]+dp[i-2];

        return dp[n];
    }
};

总结
变相的斐波那契数

746. 使用最小花费爬楼梯

这道题目力扣改了题目描述了,现在的题目描述清晰很多,相当于明确说 第一步是不用花费的。

更改题目描述之后,相当于是 文章中 「拓展」的解法

https://programmercarl.com/0746.%E4%BD%BF%E7%94%A8%E6%9C%80%E5%B0%8F%E8%8A%B1%E8%B4%B9%E7%88%AC%E6%A5%BC%E6%A2%AF.html
视频讲解:https://www.bilibili.com/video/BV16G411c7yZ

class Solution {
public:
    int minCostClimbingStairs(vector<int>& cost) {
        vector<int> dp(cost.size()+1);
        dp[0]=0;// 默认第一步都是不花费体力的
        dp[1]=0;
        for(int i=2;i<=cost.size();i++)
        {
            dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
        }
        return dp[cost.size()];
    }
};

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-02 14:34:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-02 14:34:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-02 14:34:07       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-02 14:34:07       20 阅读

热门阅读

  1. C语言归并递归与非递归实现

    2024-04-02 14:34:07       11 阅读
  2. 1187: 【二维数组】矩阵加法

    2024-04-02 14:34:07       12 阅读
  3. 开发基础知识之应用程序包基础知识

    2024-04-02 14:34:07       13 阅读
  4. 网络问题排查方案(IP冲突问题)

    2024-04-02 14:34:07       13 阅读
  5. Lua脚本的使用

    2024-04-02 14:34:07       15 阅读
  6. react--常见hook

    2024-04-02 14:34:07       12 阅读
  7. 25.死锁

    25.死锁

    2024-04-02 14:34:07      17 阅读
  8. Git 实战教程

    2024-04-02 14:34:07       21 阅读
  9. 数据流模型——【数据科学与工程算法基础】

    2024-04-02 14:34:07       14 阅读
  10. CPU狂飙900%,该怎么处理

    2024-04-02 14:34:07       15 阅读
  11. 【OpenCV进阶】图像中添加中文字幕

    2024-04-02 14:34:07       21 阅读
  12. 低代码与系统集成:革新企业应用开发的新动力

    2024-04-02 14:34:07       14 阅读
  13. MYSQL08_页的概述、内部结构、行格式

    2024-04-02 14:34:07       18 阅读