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

动态规划问题 -- 斐波那契数列模型(使用最小花费爬楼梯)

目录

  • 动态规划分析问题五步曲
  • 题目概述
  • 代码编写

动态规划分析问题五步曲

不清楚动态规划分析问题是哪关键的五步的少年们可以移步到
链接: 动态规划算法基础
这篇文章非常详细的介绍了动态规划算法是如何分析和解决问题的

题目概述

链接: 最小花费爬楼梯
在这里插入图片描述

  1. 状态表示(题目要求+自己的经验)
    本题状态dp[i] :dp[i]表示站在第i个台阶上要花费的最小体力(支付本台阶的花费)
  2. 状态转移方程推导
    分析第i个位置,显然可以从第i-1和i-2个位置跳到第i个位置
    结合本题的状态表示,状态转移方程:
    dp[i] = min(dp[i],dp[i-1]) + cost[i];
    在这里插入图片描述
  3. 初始化(防止越界+结合状态表示初始化)
    当i < 2 时数组下标可能小于0越界,因此令dp[0] = cost[0];
    dp[1] = cost[1];
  4. 填表顺序(分析要填i位置前一个依赖状态的位置)
    显然是从左到右
  5. 返回值(由题目要求来)
    dp的最后一个位置和倒数第二个位置都可以跳到终点,所以返回二者的小值
    在这里插入图片描述

代码编写

      int minCostClimbingStairs(vector<int>& cost) {if(cost.size() == 2) //这种情况表示都可以跳到楼顶return min(cost[0],cost[1]);vector<int> dp(cost.size());dp[0] = cost[0] , dp[1] = cost[1];for(int i = 2 ; i < dp.size() ; i++)dp[i] = min(dp[i-1],dp[i-2]) + cost[i];return min(dp[dp.size()-1] , dp[dp.size()-2]);}

少年们今天你又进步了一点哟,继续加油吧
在这里插入图片描述

http://www.xdnf.cn/news/110665.html

相关文章:

  • 怎么实现RAG检索相似文档排序:similarities
  • 【hadoop】HBase shell 操作
  • 在 Ubuntu 环境为 Elasticsearch 引入 `icu_tokenizer
  • docker部署Jenkins工具
  • 宝塔里redis停止了自动启用脚本
  • Docker 部署 Redis:快速搭建高效缓存服务
  • Flask + ajax上传文件(二)--多文件上传
  • 从入门到精通【MySQL】视图与用户权限管理
  • 使用RabbitMQ实现判题功能
  • 切割PDF使用python,库PyPDF2
  • 大学生如何学好人工智能
  • 代码注释标记的含义
  • Spring Cloud Alibaba VS Spring Cloud
  • 安宝特案例 | AR技术在院外心脏骤停急救中的革命性应用
  • GPLT-2025年第十届团体程序设计天梯赛总决赛题解(2025天梯赛题解,266分)
  • Linux:环境变量
  • Java基础复习(JavaSE进阶)第九章 网络编程
  • 基于 Vue 2 开发的分页卡片列表组件(带懒加载和点击事件)
  • [特殊字符] 分布式事务中,@GlobalTransactional 与 @Transactional 到底怎么配合用?
  • Python爬虫实战:获取xie程网敦煌景点数据,为51旅游路线做参考
  • Python实现图片浏览器
  • 连锁美业管理系统「数据分析」的重要作用分析︳博弈美业系统疗愈系统分享
  • 使用 Python 打造强大的文件分析工具
  • 海量粒子特效解决方案:VEG
  • java六人打分
  • 高效并发编程:无锁编程
  • 字节系a_bogus补环境
  • 浏览器相关知识点
  • 路由交换实验-手动聚合与LACP
  • 自动创建 中国古代故事人物一致性图画,看看扣子的空间是否能达到你的满意,自媒体的福音?