最长上升子序列 LIS

来源:互联网 发布:点云建模软件 编辑:程序博客网 时间:2024/05/20 18:45

最长上升子序列有好几种解法,这里介绍其中比较常用的两种。

第一种是普通的动态规划,时间复杂度为O(N^2),所以写一些数据比较大的题目就会超时,比如请看这题,没什么好说的,直接上代码。


第二种是动态规划加二分查找,我们知道二分查找适用于大量查找而不适用于移动数据,这种方法正是用元素替换(即新来的满足条件的元素替换当前的元素)的技巧,巧妙利用了二分查找的这一特点,在普通动态规划的基础上利用二分查找将时间复杂度降低为O(N*logN),注释写在代码中。


0 0
原创粉丝点击