当前位置: 首页 > article >正文

DP专题----

公式:

1.确定dp含义,

2.递推公式

3.dp数值如何初始化

4.遍历顺序

5.打印dp数组

1.509. 斐波那契数 - 力扣(LeetCode)

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. 爬楼梯 - 力扣(LeetCode)

还是5部曲,

确定dp[i]含义

递推公式

初始化

遍历顺序

打印dp数组

class Solution {
public:
    int climbStairs(int n) {
        if(n<=1) return n;
        vector<int> dp(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];
    }
};

746. 使用最小花费爬楼梯 - 力扣(LeetCode)

第一步就是明确dp[i]的含义:调到楼梯i的最小花费;

然后初始化第 0 1 个元素的值;

之后开始递推公式;

遍历顺序

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()];
    }
};


http://www.kler.cn/a/521567.html

相关文章:

  • 人工智能学习框架:深入解析与实战指南
  • 【算法】【归并排序】AcWing 算法基础 788. 逆序对的数量
  • 深度解析“Integrity”——从技术到品格的多重意义
  • AI Agent:改变的不仅是技术,更是我们的未来选择
  • Django的安装
  • 2024年度即寒假总结
  • 【Linux】磁盘
  • 信息学奥赛一本通 1376:信使(msner)
  • Versal - 基础2(系统架构+各子系统框图+调试模块)
  • Qt 5.14.2 学习记录 —— 이십일 Qt网络和音频
  • mamba论文学习
  • HDFS安全模式
  • 「蓝桥杯题解」蜗牛(Java)
  • 全志开发板 视频输入框架
  • Rust:如何动态调用字符串定义的 Rhai 函数?
  • 基于Django的豆瓣影视剧推荐系统的设计与实现
  • MacOS 如何映射快捷键
  • 以太网详解(六)OSI 七层模型
  • MVCC底层原理实现
  • Java 注解与元数据