Uva 11572 唯一的雪花
2024-09-28 19:33:10
题目链接:https://uva.onlinejudge.org/external/115/11572.pdf
题意:找到一个尽量长的连续子序列 Al ~ AR ,使得该序列没有相同的元素。
分析:枚举超时,怎么优化呢? 当我不停的将右端点右移,当我移不动的时候,说明之前的 l ~ r 里面有一个和 r++的元素相同。
但是,不代表 l ~ r 就没有用了,他本身还是有作用的,只要将 l 右移即可。这样,单看这里,时间复杂度为O(n) ,
然后就是查看 r++ 的元素是否和前面的相同,用 set 集合,时间复杂度是 O(log n) ;
#include <bits/stdc++.h> using namespace std; const int maxn = + ; int a[maxn]; int main()
{
int t;
cin>>t;
while(t--) {
int n;
cin>>n;
for(int i=;i<n;i++)
cin>>a[i]; set<int> s;
int L = ;
int R = ;
int ans = ;
while(R<n) {
while(R<n&&!s.count(a[R])) s.insert(a[R++]);
ans = max(ans,R-L);
s.erase(a[L++]);
}
cout<<ans<<endl;
} return ;
}
最新文章
- ubuntu(Mint-17)修改dns
- Django--BBS项目
- 313.	Super Ugly Number
- Java 理论与实践: 流行的原子——新原子类是 java.util.concurrent 的隐藏精华(转载)
- linux 第一次获得root权限
- C#中Thread.sleep()
- ExtJs双ActionResult共用同一Js文件ID冲突解决方案
- POJ3368(RMQ)
- HTML系列(七):多媒体
- 详解Objective-C中委托和协议
- 【转】OCR识别引擎tesseract使用方法——安装leptonica和libtiff
- linux服务器开发二(系统编程)--线程相关
- TP5.0 PHPExcel 数据表格导出(原)
- Android studio签名与代码混淆
- zookeeper入门系列 : 分布式事务
- 历史命令与实时记录(redhat6.8)
- 正则表达式验证input文本框
- AFN 二次封装
- Python进阶【第十一篇】模块(下)之常用模块
- Oracle SQL语句执行步骤
热门文章
- ZPL JS 调用共享打印机
- shell脚本启动java程序
- app的deviceName,apppackage,appactivity获取
- impdp参数TABLE_EXISTS_ACTION
- RTT之shell
- Kure讲HTML_HTML界面结构
- DedeCMS {dede:field name=&#39;array&#39; /}的用法
- pat04-树7. Search in a Binary Search Tree (25)
- Andrew Ng 的 Machine Learning 课程学习 (week4) Multi-class Classification and Neural Networks
- vue学习中遇到的onchange、push、splice、forEach方法使用