分治法、回溯法、贪心法、动态规划法、分支限界法等。
1.动态规划思路:(存在重叠子问题)
2.问题结构分析;(存在子问题,可以递归求解,子问题重叠,带有memo的递归求解,动态规划自底向上)递推关系建立;自底向上计算;(可以先用小规模数据找到求解规律,编程);最优方案追踪;(根据求解的顺序,判断当前问题规模的解,来自于那个子问题)
3.经典问题:
0-1背包问题(物品不可分割);最大子数组问题;最长公共子序列问题;最长公共子串问题;最小编辑距离问题;(有限的情况的选择)
钢条切割问题;矩阵链乘法问题;(区间型的动态规划,需要枚举一个区间)
1.分治法的设计思想是:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
2.分治策略是:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。这种算法设计策略叫做分治法。分解→解决→合并
3.求解的经典问题:二分法查找,快速排序
4.分而治之思路:(分解原问题、解决子问题、合并问题解)。分解原问题;(存在子问题,可以递归求解,子问题不重叠