题目来源
首先本题描述中说明了递增子序列是可以不连续的,因此本题无法使用双指针来处理。双指针一般只可以求解连续递增子序列。
本题需要使用动态规划的思维,将大问题划分为相同子问题,从子问题中寻找规律。
比如我们需要求下面nums的最长递增子序列,
nums = [10,9,2,5,3,7,101,18]
首先缩小数据规模,先求
nums = [10] 的最长递增子序列,发现就是10
接着扩大数据规模,求
nums = [10,9 ] 的最长递增子序列,新加入元素9,则9尝试和10组合,发现不是严格递增,因此无法组合,因此该子问题得最长递增子序列是9
继续扩大数据规模,求
nums = [10,9,2] 的最长递增子序列,新加入元素2,分别尝试和9子序列合并,和10子序列组合,发现无法形成严格递增,