Unique Snowflakes UVA - 11572
问题描述:

输入输出说明:

**思路:**滑动窗口算法
设置l,r左右两个游标,
只要没有重复的一直r++;
知道遇到重复的,跳出内层循环,更新值,并去除a[l],l++;

ac code:
#include<bits/stdc++.h> using namespace std; typedef long long ll; int a[
1000002]; int n; int main(){ int t; scanf("%d",&t); while(t--){ scanf("%d",&n);
for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } ll maxlen=0; ll l=1,r=1; set<int> s;
while(r<=n){ while(r<=n&&!s.count(a[r]))s.insert(a[r++]); maxlen=max(maxlen,r-l)
; s.erase(a[l++]); } printf("%lld\n",maxlen); } return 0; }

技术
©2019-2020 Toolsou All rights reserved,
css中上下左右居中的几种实现方法[CISCN 2019 初赛]Love Mathc/c++语言实现登陆界面Unity3D 人称设置(第一人称视角、第三人称视角)Fastadmin框架自定义搜索操作流程2021最新Python自动化软件测试笔试题(含答案)黑客帝国装逼的代码雨mysql数据库设置字符集配置修改my.ini文件(windows)python之panda模块1Python学习笔记:基础+进阶10道练习题