一.动态规划
适合用动态规划的问题的基本特征
参考 https://zhidao.baidu.com/question/561484516800579644.html
1.最优子结构
母问题的最优解包含其子问题的最优解,即具有最优子结构,即子问题最优时,母问题通过优化一定能获得最优解
2.子问题重叠
子问题本质上和母问题是一样的,只是问题的输入参数不一样
3.问题存在边界
子问题在一定情况下就不存在子问题了
4.子问题相互独立
各子问题在求解最优解时是相互独立的,即本子问题的求解和其他平行子问题是不相干的,平行问题都得到解决后,选择权交给母问题时,它才会考虑各子问题之间的关系,进行运算求解
二.递归
在函数或子过程的内部,直接或者间接地调用自己的算法
三.贪心
参考 https://www.jianshu.com/p/ab89df9759c8
在对问题求解时,总是做出在当前看来最好的选择,即不从整体最优上加以考虑,仅考虑局部最优解
1.贪心算法基本思路
(1)建立数学模型来描述问题
(2)把求解的问题分成若干个子问题
(3)对每个子问题求解,得到子问题的局部最优解
(4)把子问题的解局部最优解合成原来问题的一个解