代码随想录算法训练营第三十八天|动态规划part01

8.4 周五

  •  理论基础 
  •  509. 斐波那契数 
  •  70. 爬楼梯 
  •  746. 使用最小花费爬楼梯 

 详细布置 

今天正式开始动态规划!

 理论基础 

递归五部曲:

1、dp数组及其下标的含义

2、确定递推公式

3、数组初始化

4、确定遍历顺序

5、打印数组

 509. 斐波那契数 

题目:给出斐波那契数列的第n个数的值

题解:

1、dp[i] = dp[i-1] + dp[i-2]

2、dp[0] = 0;dp[1] = 1

注意:最开始要判断

if (N <= 1) return N;

 70. 爬楼梯   

题目:一次可以爬1或2个台阶,问爬n阶楼梯有几种方式

题解:

1、从3阶楼梯开始,dp[i] = dp[i-1] + dp[i-2]

2、dp[1] = 1;dp[2] =2

 746. 使用最小花费爬楼梯 

题目:

在i个台阶往上爬需要花费cost[i],问到屋顶的最小花费

题解:

1、dp[i]表示到i个台阶的最小话费

2、到第i个台阶,可以选择从i-1向上爬一阶,也可以选择从i-2向上爬两阶,选择两种方法中cost小的那个

3、dp[0]=dp[1] =0 因为仅仅站在台阶而不往上爬时没有花费

你可能感兴趣的:(算法,动态规划)