动态规划
这个算法也不是容易说明白的,我现在还在研究中,看了十几题吧,简单记录一下心得,后面还会逐步补充。
适用于哪些问题?
我的理解是要解决的问题先拆解为子问题,然后用一个数组来记录子问题的答案,这样后面就能直接利用了(这一点和递归不一样,递归每一次都是从头开始计算)。因为后面的问题要使用前面的答案,所以往往会有递推公式。能把递推公式写出来,那么这个题基本就解决了。
最长公共子序列
字符串的匹配
矩阵的路径(注意二维dp可以转为一维dp)
股票(感觉有点像状态机)
背包(0-1背包,完全背包,考虑顺序的完全背包)
斐波那契数列
整数分割(乘积最大)
待续…