和递归有点像,但是动态规划是由底向上递推的
主要步骤:动态规划会将主问题拆分成多个子问题,找出他的状态转移方程,避免重复找计算,这也是和递归最大的区别,出可能的局部最优解
主要运用题:一般用于处理最长,最优,最短,最大,最小等问题;
基本要素:最优子结构性质和重叠子问题
最优子结构:能从每个的前一项能推出下一项的公式。
重叠子问题:也就是找出他的最优递归算法,但要避免重复
例题1:状态转移公式——斐波拉契数列
下面简要描述一下递归和动态规划的区别:
例题2:状态转移方程——n的阶乘
此类题目均可用一个循环以及推出的状态转移方程解出结果