动态规划五步曲

一、什么是动态规划五步曲

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

二、 个人赏析

这是我从某网站上看到的关于动态规划的教学系列。作为应试来说,这个 提纲确实不错,能让应试者掌握基础题目的解法,可是遇到一些拓展题目了,这五步曲的第一步能走通吗?
归根结底,第一步确定dp数组以及下标的含义,怎么确定?
(1)根据记忆搜索
(2)根据题目性质推敲

根据记忆搜索就是回想以前用过的dp数组的含义,看能否套在这个题目上,这是一种遍历已知方法的方式。只能解决有限种dp问题。

第二种,根据题目性质推导。怎么推导?这才是动态规划的难点所在。要深刻理解动态规划的含义:交叠子问题可以重复利用。

将问题拆解为几个问题求解,这几个小问题在求解过程中,又利用到了重复求解的答案(比如问题A拆分成BDC,而B用到D、C,那么我们可以存储DC的答案)。利用空间换时间的特性,开辟数组存储子问题的答案而不必重复求解,这才是动态规划的精髓所在。

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