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

Day32| 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

509. 斐波那契数

动态规划五部曲:

  1. 确定dp数组以及下标含义
  • 第i个数的斐波那契数列是dp[i]
  1. 确定递推公式
  • 状态转移方程 dp[i] = dp[i - 1] + dp[i - 2];
  1. dp数组如何初始化
  • dp[0] = 0; dp[1] = 1;
  1. 确定遍历顺序
  • dp[i]是依赖 dp[i - 1] 和 dp[i - 2]→遍历的顺序一定是从前到后遍历的
  1. 举例推导dp数组
public class Solution {public int Fib(int n) {if(n<2) return n;// 用长度为2的数组保存前两个结果,节省空间int[] dp=new int[2]{0,1};// 从 2 开始迭代直到 nfor(int i=2;i<=n;i++){// 滚动数组:前一项变成现在的后一项int temp=dp[0]+dp[1];dp[0]=dp[1];dp[1]=temp;}// 返回第 n 项(最终保存在 dp[1] 中)return dp[1];}
}

70. 爬楼梯(写法与上题相同)

动态规划五部曲:

  1. 确定dp数组以及下标含义
  • 达到i阶有dp[i]种方法
  1. 确定递推公式
  • 状态转移方程 dp[i] = dp[i - 1] + dp[i - 2];
  1. dp数组如何初始化
  • dp[1] = 1; dp[2] = 2;
  1. 确定遍历顺序
  • dp[i]是依赖 dp[i - 1] 和 dp[i - 2]→遍历的顺序一定是从前到后遍历的
  1. 举例推导dp数组
public class Solution {public int ClimbStairs(int n) {if(n<=2) return n;int[] dp=new int[2]{1,2};for(int i=3;i<=n;i++){int temp=dp[0]+dp[1];dp[0]=dp[1];dp[1]=temp;}return dp[1];}
}

746. 使用最小花费爬楼梯

可以选择爬 1 或 2 个台阶,可以从下标 01 开始爬

动态规划五部曲:

  1. 确定dp数组以及下标含义
  • 到达第i台阶所花费的最少体力为dp[i]。
  1. 确定递推公式
  • 状态转移方程

  • dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]

  1. dp数组如何初始化
  • dp[0] = 0; / dp[1] = 0;
  1. 确定遍历顺序
  • dp[i]是依赖 dp[i - 1] 和 dp[i - 2]→从前到后遍历cost数组
  1. 举例推导dp数组
public class Solution {public int MinCostClimbingStairs(int[] cost) {int[] dp=new int[2]{0,0};for(int i=2;i<=cost.Length;i++){int temp=Math.Min((dp[1]+cost[i-1]),(dp[0]+cost[i-2]));dp[0]=dp[1];dp[1]=temp;}return dp[1];}
}

 

 

http://www.lryc.cn/news/601137.html

相关文章:

  • 基于springboot的在线数码商城/在线电子产品商品销售系统的设计与实现
  • 06-ES6
  • Effective C++ 条款04:确定对象被使用前已先被初始化
  • 【C++】定义常量
  • HTTPS的基本理解以及加密流程
  • 基于图神经网络的星间路由与计算卸载强化学习算法设计与实现
  • C++___快速入门(上)
  • 人形机器人_双足行走动力学:弹性势能存储和步态能量回收
  • LeetCode|Day26|191. 位 1 的个数|Python刷题笔记
  • hot100-每日温度
  • MyBatis-Plus 通用 Service
  • 睡眠函数 Sleep() C语言
  • 缓存一致性:从单核到异构多核的演进之路
  • [RPA] 日期时间练习案例
  • 免费 PDF 转 Word 工具:无水印 / 支持批量转换,本地运行更安全【附工具下载】
  • Python day25
  • 数字化转型 - 企业数字化建设的几点思考
  • Redis的下载和安装(Linux)
  • 学习随笔录
  • SSH连接失败排查与解决教程: Connection refused
  • 不正确的 clone() 方法实现与修复方案
  • java--JDBC
  • 【Canvas技法】绘制正N角星
  • 【数据结构】二叉树初阶详解(二):实现逻辑与代码拆解(超详版)
  • 计算机中的单位(详细易懂)
  • CH341 Linux驱动 没有 /dev/ttyCH341USB0
  • MySQL 基本查询
  • 【408二轮强化】数据结构——线性表
  • 最优估计准则与方法(4)最小二乘估计(LS)_学习笔记
  • 最优估计准则与方法(5)加权最小二乘估计(WLS)_学习笔记