约 10 分钟
O(n²) 对大数据太慢。可以维护数组 g[],g[k] 记录长度为 k 的上升子序列结尾的最小值,它一定递增。每来一个数就二分找到它该替换的位置,复杂度降到 O(n log n)。
g[]
g[k]
为什么 g[] 里要存“最小的结尾值”,而不是随便一个?
登录 后可看答案