Fork me on GitHub

算法训练4

dfs和分治会有重复的计算,所以复杂度高

可以采用记忆化搜索的方式,保存已经计算过的结果。

记忆化搜索就是动态规划的一种。

动态规划就是解决了重复计算的问题。

动态规划题目特点

1、求最大最小

2、求yes、no

3、求count(*)

不能对原数据进行交换或者排序。

 

动态规划的四个要素

1、状态,最小规模的问题解决和定义

2、方程,状态之间的联系

3、初始化,第一个数据初始化来得到后面的结果

4、答案,最后状态是什么

 

动态规划的精髓

当前问题可以分成若干个相同的子问题,解决了子问题就能解决当前的问题。

动态规划都是用来求最优解的。如果要你求解的个数,可能需要搜索每一种可能,那就应该是搜索,dp可能性不大。

如果状态转移无法建立,那么一定是你的状态设置有问题。

posted @ 2017-03-16 13:11  LinkinStar  阅读(77)  评论(0)    收藏  举报