C++计算整数序列的最长递增子序列的长度操作
给定一个整数序列,计算其中的最长递增子序列的长度,这是一个典型的动态规划的算法。比如8个整数的序列 186 186 150 200 160 130 197 200,最长递增子序列是 150 160 197 200, 长度为4。想要解决此问题,可以把这个大问题分解为小问题,依次考虑每个数,计算出包含该数数和该数之前的所有数的最长递增子序列的长度,计算出的长度值作为该数的对应值记录下来,最后可以得到这8个数对应的长度值序列,也是8个数,找到这8个数中的最大值就是所有书的最长递增子序列的长度。或者也可以这样想,想要计算8个数的最长递增子序列的长度有难度,不如先考虑最简单的情况。下面给出实现代码:
用户评论