动态规划——最长上升子序列

给定一个无序的整数数组,找到其中最长上升子序列的长度。

输入:[10,9,2,5,3,7,101,18]

输出: 4

解释: 最长的上升子序列是[2,3,7,101],它的长度是4。


解:我们使用d[ i ]来表示前 i 个字符最长的长度,第 i 个字符如果大于最长上升子序列的最后一个字符时,那么最长上升子序列就可以增加一个,长度则可以加一。我们需要维护一个数组d[ i ],计算第 i 个数字时,则遍历d[ i ]。如果nums[ i ] > nums[ j ] (i > j),则d[ i ] = d[ j ] + 1,否则d[ i ] = d[ j ]

你可能感兴趣的:(动态规划——最长上升子序列)