思路:
(1)条件:n个数
(2)问题:
(3)分析:
代码:
- #include
- using namespace std;
- const int N=100010;
- int n,ans,a[N],f[N];//这里把f数组与len数组合并了
- int main()
- {
- cin.tie(0);
- cout.tie(0);//必须加速优化
- int x;
- while(cin>>x)a[++n]=x;
- memset(f,0x3F,sizeof(f));//初始化为极大值
- reverse(a+1,a+n+1);//反转
- for(int i=1;i<=n;i++)
- {
- int l=1,r=i;
- while(l
//左查 - {
- int mid=(l+r)/2;
- if(f[mid]>a[i])r=mid;
- else l=mid+1;
- }
- f[l]=min(f[l],a[i]);
- ans=max(ans,l);
- }
- cout<
- memset(f,0x3F,sizeof(f));
- reverse(a+1,a+n+1);//反转回来
- ans=0;//注意
- for(int i=1;i<=n;i++)
- {
- int l=1,r=i;
- while(l
- {
- int mid=(l+r)/2;
- if(f[mid]>=a[i])r=mid;
- else l=mid+1;
- }
- f[l]=min(f[l],a[i]);
- ans=max(ans,l);
- }
- cout<
- return 0;
- }
-
相关阅读:
c++ 聚合/POD/平凡/标准布局 介绍
leetcode做题笔记144. 二叉树的前序遍历
常用的Spring Boot 注解及示例代码
读书郎通过上市聆讯:平板业务毛利率走低,2021年利润同比下滑11%
Python教程——多线程
Linux补充知识:
快速理解java语言
【Vue面试题十四】、说说你对vue的mixin的理解,有什么应用场景?
使用Kubectl管理kubernetes集群
火热的低代码,是时候系统的来学一学了!
-
原文地址:https://blog.csdn.net/m0_70392867/article/details/134325093