动态规划
1.核心思想:
先逐步解决小问题,再解决大问题。如背包问题典型的公式是:
2.总结:
(1)行的排列顺序无关紧要,逐列填充或者逐行填充对背包问题不影响, 但是对其他问题可能会影响(?)。
(2)建立的表格要以出现的最细的粒度来考虑。
(3)使用动态规划时,必须是整件商品,要么拿走,要么放弃,不可以拿一部分。只取一部分的情况,可以用贪婪算法。
(4)子问题之间互相依赖的情况不能用动态规划。仅当每个子问题都是离散的且彼此独立,即不依赖与其他子问题时,动态规划才管用。
(5)动态规划可以在给定约束条件下找到最优解。
(6)每种动态规划解决方案都设计网格。
(7)单元格的值通常就是要优化的值。
(8)考虑如何将问题分成子问题,有助于找出网格的坐标轴。
(9)最长子序列、最长公共子串使用场景:输入法联想