今日内容–动态规划
dp解题的思路是分解问题,子问题和原问题形式相同或类似,只不过规模变小了。子问题都解决,原问题即解决。
接下来确定边界情况,状态转移方程。
例题:求出最长上升子序列的长度,比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4,比
如子序列(1, 3, 5, 8)
用maxlen表示第i个点的最长上升子序列,初始状态下,都为其本身,即为数字1,遍历数组,第二层循环中,从0到i进行遍历,如果i之前的j元素小于a[i],就在maxlen[j]的基础上,加上j这个元素,也就是加一,最后输出maxlen数组的最大值即可。