动态规划核心要义 这一步的数据依据上一步或者上两步的数据
动态规划五部
- 确定dp数组(dp table)以及下标的含义
- 确定递推公式
- dp数组如何初始化
- 确定遍历顺序
- 举例推导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]);
标签:初始化,01,台阶,数组,动态,规划,dp
From: https://www.cnblogs.com/hook-thresh/p/17516989.html