DP--最长上升子序列LIS(顺带学习树状数组)

3种方法:
1、DP(时间复杂度n^2)
比较简单,不说了
2、贪心+二分( O(nlogn) )
1)写一个二分函数(或者是lower_bound函数)
2)每次从已知的最小子序列中找到要插入的位置插入
3、树状数组维护( O(nlogn) )
就是把DP中每次原数组查询变成树状数组查询,原数组查询=O(N) 树状数组查询=O(logN)
树状数组学习:https://www.cnblogs.com/xenny/p/9739600.html
蛮容易的,因为看过线段树与后缀数组

猜你喜欢

转载自blog.csdn.net/qq_42882717/article/details/100128308