上一篇,是关于最长回文子串的Manacher算法的详解,这篇,我们进入动态规划的世界。
https://blog.csdn.net/u013309870/article/details/75193592
动态规划 Dynamic Programming:
下面一句话 和 一段对话就能说明动态规划的本质:记住已经解决过的子问题的解
那些记不住过去的人注定要重蹈覆辙
A * "1+1+1+1+1+1+1+1 =?" *
A : "上面等式的值是多少"
B : *计算* "8!"
A *在上面等式的左边写上 "1+" *
A : "此时等式的值为多少"
B : *quickly* "9!"
A : "你怎么这么快就知道答案了"
A : "只要在8的基础上加1就行了"
A : "所以你不用重新计算因为你记住了第一个等式的值为8!动态规划算法也可以说是 '记住求过的解来节省时间'"
只要在8的基础上再+1就知道答案了。
求解的方式有两种:①自顶向下的备忘录法 ②