今天是leetcode300
- 这题O(n^2)的方法很简单,他让进阶是O(nlogn),其实能logn的方法是少之又少,无非就是二分或者分治,但是我还是没想出来,服了。
我的心路历程是
-
看到他一个特性,就是相同长度的子序列而论,以更大数为结尾的子序列就可以抛弃了。比如[1,2]和[1,3],对于长度为2来说,我们只需要前者,后者肯定是比前者要差的。
-
但是想到这的时候我是想,总不能来一个更小的我就开一个列表,然后他到长度就把更大的替换掉吧?这也没有logn的影子啊。
-
于是我就看答案,答案里只记录了每个长度对应的末尾数,于是有序数组和二分搜索插入就呼之欲出了。
-
还能说啥呢,牛