这个算法巧妙之处在于利用了大部分之前的计算的信息。
这里开了一个数组,记录最长子序列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)