-
适用问题
常用于寻找符合某种条件的子序列的最优解。 -
思路
枚举数组长度为1,2…时的解,找出递推关系式,注意找当前状态与之前状态的联系,即可求解。
子序列最优解是一个值或者最优子序列(如最长回文子串),dp[i]表示输入数组长度为i时的最优解。 -
类型
(1) 对子序列顺序做限制,比如连续子序列的最大和/最大乘积,子序列元素必须是间隔1的元素等。
用dp[i]表示包含当前元素num[i]的局部最优解,最后从整个dp数组找全局最优。
House Robber: 给定数组表示抢劫每个房子的收益,限制抢劫的房子不能相邻,要求抢劫的最大收益是多少。
Example:
Input: [1,2,3