LIS(最长递增子序列) 二分 + dp

简介: 笔记

算法:动态规划+二分查找

时间复杂度:O(nlogn)

#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
#define mod 998244353
#define endl '\n'
using namespace std;
typedef long long LL;
typedef pair<int, int>PII;
const int N = 100010;
int n;
int a[N], q[N];
// q[i] 表示长度为 i 的上升子序列的末尾元素最小为 q[i]
void solve() {
  cin >> n;
  for (int i = 1; i <= n; ++i) scanf("%d", a + i);
  int len = 0;
  for (int i = 1; i <= n; ++i) { //对于每个数 找到最后一个比它小的数对应的长度
    int l = 0, r = len;
    while (l < r) {
      int mid = l + r + 1>> 1;
      if (q[mid] < a[i])l = mid;
      else r = mid - 1;
    }
    // 可以把当前这个数放在长度为 r 的上升子序列后面 所以长度为 r + 1
    len = max(len, r + 1); 
    //因为找到的是 小于 a[i] 的上升子序列的长度最大值 所以 q[r + 1] 一定比 a[i] 大 那么更新 q[r + 1] 为 a[i] 不会改变长度 且后续有更多的空间放后面的数
    q[r + 1] = a[i]; 
  }
  printf("%d\n", len);
}
int main() {
  //int t; cin >> t;
  //while (t--)
    solve();
  return 0;
}
目录
相关文章
|
Java 数据格式 JSON
项目启动保错(jackson版本问题导致项目启动失败)
项目启动保错(jackson版本问题导致项目启动失败)
758 0
项目启动保错(jackson版本问题导致项目启动失败)
|
自然语言处理 搜索推荐 算法
M2GRL:一种用于全网规模推荐系统的多任务多视角图表示学习框架
由阿里云开发者社区联合新零售智能引擎事业群共同打造的《KDD 论文精华解读》电子书重磅发布!覆盖推荐系统、图神经网络预训练、买家秀视频标题生成、在线电视剧的受众竞争力预测和分析等 10+ 内容,免费下载电子书感受科技的震撼!
M2GRL:一种用于全网规模推荐系统的多任务多视角图表示学习框架
|
网络协议 Linux
nmcli命令详解
【4月更文挑战第9天】`nmcli`是Red Hat 7及CentOS 7后的网络管理命令,用于配置网卡并持久化设置。它可以显示网络连接信息(如`connection show`、`dev status`),控制网卡状态(启用、停用、删除连接),以及修改配置(如IP地址、DNS)。其他功能包括检查NetworkManager状态、开关网络连接和查看系统网络状态。要了解全部详情和高级用法,建议查阅相关文档。
1429 1
|
算法 安全 Java
Java多线程基础-12:详解CAS算法
CAS(Compare and Swap)算法是一种无锁同步原语,用于在多线程环境中更新内存位置的值。
385 0
|
运维 Kubernetes Devops
阿里云云效操作报错合集之k8s直接返回401,该如何排查
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
阿里云云效操作报错合集之k8s直接返回401,该如何排查
|
存储 小程序 安全
微信的开发管理都需要配置什么?
【10月更文挑战第17天】微信的开发管理都需要配置什么?
276 0
|
程序员
最新 HUAWEI DevEco Studio 调试技巧
最新 HUAWEI DevEco Studio 调试技巧
250 0
|
监控 Oracle 关系型数据库
Dataphin实时集成Oracle CDC相关问题排查
本文档提供了Dataphin平台Oracle CDC实时集成相关问题排查指南,覆盖了权限等常见问题,旨在帮助快速定位和解决Oracle数据库变更数据捕获(CDC)集成过程中所可能遇到的技术难题,确保数据的实时、准确同步。
350 1
|
前端开发 Java 程序员
图书管理系统调整——修改注解(引入IoC、DI思想)
图书管理系统调整——修改注解(引入IoC、DI思想)
108 2
vant-函数式组件用法
vant-函数式组件用法
259 0