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

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

一、动态规划基础理论

动态规划五部曲:

  1. 确定dp数组(dp table)以及下标的含义
  2. 确定递推公式
  3. dp数组如何初始化
  4. 确定遍历顺序
  5. 举例推导dp数组

二、509. 斐波那契数

class Solution {
    public int fib(int n) {
        if(n<=1) return n;
        int[] dp = new int[2];
        dp[0] = 0;
        dp[1] = 1;
        for(int i=2 ; i<=n ;i++){
            int dpi=dp[0]+dp[1];
            dp[0]=dp[1];
            dp[1]=dpi;
        }
        return dp[1];
    }
}

二、70. 爬楼梯

class Solution {
    public int climbStairs(int n) {
        if(n<=2)  return n;
        int[] dp = new int[3];
        dp[1] = 1;
        dp[2] = 2;
        for(int i = 3; i<=n ; i++){
            int dpi = dp[1] + dp[2];
            dp[1] = dp[2];
            dp[2] = dpi;
        }
        return dp[2];
    }
}

三、746. 使用最小花费爬楼梯

从0或1处开始,说明走到0或1的花费都是0,后面每一步 是前两个位置的(历史花费加上迈出这一个台阶的花费)的最小值。

class Solution {
    public int minCostClimbingStairs(int[] cost) {
        int dp0 = 0;
        int dp1 = 0;
        for(int i = 2 ; i<=cost.length ; i++){
            int dpi = Math.min(dp0+cost[i-2],dp1+cost[i-1]);
            dp0 = dp1;
            dp1 = dpi;
        }
        return dp1;
    }
}

http://www.dtcms.com/a/52109.html

相关文章:

  • 【Git】Git基本操作
  • 学习threejs,使用LineBasicMaterial基础线材质
  • Vue中实现大文件的切片并发下载和下载进度展示
  • Spring Boot 的事务回滚
  • 【MySQL_02】安装(8.4.4LTS : Windows + Linux)
  • 在S32K3上实现SOC的神经网络算法的可行性
  • pyside6学习专栏(十):在PySide6中使用vtk模块绘制点、文本、线、三角形面、四面体、三棱柱、四棱锥等三维的基本元素对象
  • 多线程-线程本地变量ThreadLocal
  • Avalonia 中文乱码
  • C 语言数据结构(一):时/空间复制度
  • java环境部署
  • git修改本地用户名和邮箱和凭据
  • 171. Excel 表列序号
  • C++24--右值引用C++11新特性
  • 前端基础之组件自定义事件
  • Web服务器配置
  • PX4中的DroneCAN的实现库Libuavcan及基础功能示例
  • 利用行波展开法测量横观各向同性生物组织的生物力学特性|文献速递-医学影像人工智能进展
  • Web3 的未来:去中心化如何重塑互联网
  • 美颜SDK架构揭秘:人脸美型API的底层实现与优化策略
  • DeepSeek+Graphrag检索增强
  • 【0010】Python流程控制结构-分支结构详解
  • [machine learning] MACS、MACs、FLOPS、FLOPs
  • 第三章 指令系统
  • K8s控制器Deployment详解
  • 小程序是否支持SSE
  • 《量子潮涌下,DataWorks中AI模型训练框架的变革征途》
  • 极狐GitLab 17.9 正式发布,40+ DevSecOps 重点功能解读【二】
  • C#批量压缩并上载CSV数据文件到Box企业云盘
  • 统一数据返回格式