两三个月前面试,发现自己对动态规划还是理解不够,最近一直想把动态规划的题目看一遍,思考,编码。
求一维数组中最长递增子序列的长度。如,序列 1,-1,2,-3,4,-5,6,-7中,其最长递增子序列长度为4(序列1,2,4,6)。
分析与解法
解法一
我们总是希望子序列中的最后一个元素尽可能小,这样我们就更可能往后面添加元素,则长度更长。 最开始想把前i个元素的各种子序列结果记下来,当第i+1个元素的时候,判断能不能往之前记录的子序列后添加。但是发现,没有必要记录所有的子序列, 只需要记录长度为k的子序列的最后一个元素的最小值就可以了,对于长度为N