最长子序列的更优解法

来源:互联网 发布:淘宝app怎么卖二手东西 编辑:程序博客网 时间:2024/06/07 23:02

这个算法巧妙之处在于利用了大部分之前的计算的信息。

这里开了一个数组,记录最长子序列stack,stack[n]记录长度为n的子序列的最小序列尾数。

 

举例:原序列为1,5,8,3,6,7 
读完8以后,栈为1,5,8,此时读到3,则用3替换5,得到栈中元素为1,3,8, 
再读6,用6替换8,得到1,3,6,再读7,得到最终栈为1,3,6,7,
最长递增子序列为长度4。

(例子来自于http://hi.baidu.com/yxdark/blog/item/e1b3e065f3bfd2f8f636543c.html)

原创粉丝点击