当前位置: 首页 > news >正文

最长上升子序列(LIS)

算法思路:

固定当前位,看前面能有几位数能和当前位去组成上升子序列,在从里面找出最长的

模板:

    for(int i=0;i<n;i++){f[i]=1;for(int j=0;j<i;j++){if(a[j]<a[i])f[i]=max(f[i],f[j]+1);}}

贪心+二分优化:

我们尽可能的让序列长度最大,那么当前位越小,后面能够组成的长度的潜力就越大,而这个数组就是每个长度级别的最小末尾值,数组长度就是最长上升子序列的长度,数组一定是递增的,我们就可以通过二分去优化查找符合条件的数。
二分查找过程:
放入a[i]
二分查找f数组,a[i]能放到哪里,如果a[i]比数组中的每个数都大,则放入数组最后一位,如果都小,则替换数组中的第一个比a[i]大的位置
注意:f数组中第一位永远是非常小的数,代码中可以不做初始化

模板:

    int len=0;for(int i=0;i<n;i++){int l=0,r=len;while(l<r){int mid=(l+r+1)>>1;if(f[mid]<a[i])l=mid;else r=mid-1;}len=max(len,r+1);f[r+1]=a[i];}cout<<len<<endl;
http://www.dtcms.com/a/570548.html

相关文章:

  • 网站被禁止访问怎么打开小型的企业网站
  • Vue实现全局设置一个刷新按钮 只刷新当面路由页面 不跳转操作功能
  • 网站开发外包协议电子商务网站方案
  • 【IC】NoC设计入门 -- 验证
  • 如何在税局网站上做税种认定推广普通话手抄报简单漂亮
  • Swift 自动引用计数
  • Delta数据结构:深入剖析高效数据同步的奥秘
  • 网站制作教程视频湖北外贸网站建设价格
  • wordpress模板展示网站制作网线视频
  • 康巴什住房和城乡建设局网站网站域名建设
  • 多线程常见面试题清单
  • Java资源持续监控(依赖 jps)
  • 北海哪家公司做网站建设研发做校招的网站有哪些
  • 建设电影播放网站盐城网站建设渠道合作
  • 关于 Vite 中环境变量(.env 文件)自定义打包的使用
  • 福建八大员建设厅延续的网站wordpress主题 资源站
  • 绵阳 网站女性门户网站源码
  • 相平面控制:从理论到极简实践
  • 免费作文网站智慧政务门户网站建设
  • 【IC】NoC设计入门 -- 网络接口NI Slave
  • 山东淄博网站建设的公司python做笔记的网站
  • cf div2 1061个人补题笔记
  • 衡阳市做网站免费网站站长推广
  • 【C++闯关笔记】unordered_map与unordered_set的底层:哈希表(哈希桶)
  • 项目部署方法总结
  • 注册网站会员需要填写信息工程设计有限公司
  • 建设网站全部流程个人网站建设制作
  • 用php做网站的方法网站开发团队分工
  • 网站规划中的三种常用类型学习网
  • app企业网站模板贵阳网站制作专业