动态规划:最长递增子序列
题目:比如一个序列为: 1 4 6 3 8 5 最长递增子序列为 1 6 8 (或者 1 3 5)
确定状态转移方程:
dp[i]表示以i结尾的最长递增子序列长度。
所以dp[i]=max(dp[j],j=1..i-1且a[j]<arr[i])+1 意思是最后在前面的递增序列后面,直接加一个arr[i],形成一个新的递增子序列。
最后要得的最长递增子序列长度为: max(dp[k],k=1..i)
(刚刚自己将dp[i]表示成[0,i]范围的最长递增子序列长度,然后卡住了,无法判断,是否可以在子序列后面加arr[i],因为arr[i]可能比前面的最后一个值大,也可能比最后一个值小)