动态规划01

动态规划核心要义 这一步的数据依据上一步或者上两步的数据

动态规划五部

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

动态规划第一题 斐波那契数列

dp[i] 表示第i个数列的值

递推公式已经给出 f(n) =f(n-1)+f(n-2)

初始化已经给出 第一个数等于0 第二个数等于1

遍历顺序从前到后

 

第二题

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

dp数组定义 dp【i 】 表示第i'个数字,

因为每次只跳1步或者两步,所以第n阶台阶只会有两种方式到达,所以dp【i】 =dp{i-1}+dp{i-2}

初始化 题目已经规定n为正整数 所以 dp【1】=1,dp【2】=2  所以n直接从3开始计算

计算顺序从前到后

 

 

第三题

 同样的 每次只能上两个台阶 那么最小花费 就是8比较一步上来和两步上来哪个花销大

初值已经给了  从第一个台阶上和第二个台阶上都可以 所以dp数组第一个和第二个都等于0

dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
posted @   呵呵啦  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示