题意:给n个数,求最长不同连续子序列。n<=1e6。

解题过程:

1.记录数据存于数组

2.用左右指针l和r指向这段连续区间

3.右指针往右走,如果遇到没有存在于set集合的数就插入集合

否则左指针往右走,逐渐删去set里的数据,不断更新答案,一直保留最大值。

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<string>
#include<vector>
#include<iostream>
#include<set>
#include<cstring>
#define inf 0x3f3f3f3f
using namespace std;
#define ll long long int a[]; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,l,r,maxx;
scanf("%d",&n);
for(int i=;i<n;i++)
scanf("%d",&a[i]);
set<int>se;
l=r=maxx=;
while(r<n)
{
while(r<n && !se.count( a[r] ) )///r<n也需要,否则可能r自增加过头了
se.insert(a[r++]);
maxx=max(maxx,r-l);///r目前是冒过头一位的,不需要r-l+1
se.erase(a[l++]);
}
printf("%d\n",maxx);
}
return ;
}

UVA11572-Unique Snowflakes-(最长不同连续子序列)的更多相关文章

  1. lintcode 最长上升连续子序列 II(二维最长上升连续序列)

    题目链接:http://www.lintcode.com/zh-cn/problem/longest-increasing-continuous-subsequence-ii/ 最长上升连续子序列 I ...

  2. lintcode :最长上升连续子序列

    题目: 最长上升连续子序列 给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列.(最长上升连续子序列可以定义为从右到左或从左到右的序列.) 样例 ...

  3. lintcode-397-最长上升连续子序列

    397-最长上升连续子序列 给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列.(最长上升连续子序列可以定义为从右到左或从左到右的序列.) 注意事 ...

  4. lintcode_397_最长上升连续子序列

    最长上升连续子序列   描述 笔记 数据 评测 给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列.(最长上升连续子序列可以定义为从右到左或从左到 ...

  5. BNUOJ 4215 最长公共连续子序列

    最长公共连续子序列 Time Limit: 1000ms Memory Limit: 65536KB   64-bit integer IO format: %lld      Java class ...

  6. 8-7 Unique Snowflakes UVA11572

    输入一个长度为n n<=10 6  的序列A  找到一个尽量长的连续子序列  使得该序列中没有相同的元素 用滑动窗口法   时间复杂度n  好神奇 此题非常经典 map   410ms #inc ...

  7. 【TOJ 5065】最长连续子序列(前缀和)

    Description 给定一系列非负整数,求最长的连续子序列,使其和是7的倍数. Input 第一行为正整数N(1<=N<=50000),接下来有N行,每行有一个非负整数,所有整数不大于 ...

  8. TOJ 5065: 最长连续子序列

    5065: 最长连续子序列   Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByteTotal Submit: 140   ...

  9. UVA - 11572 Unique Snowflakes(唯一的雪花)(滑动窗口)

    题意:输入一个长度为n(n <= 10^6)的序列A,找到一个尽量长的连续子序列AL~AR,使得该序列中没有相同的元素. 分析: 法一:从r=0开始不断增加r,当a[r+1]在子序列a[l~r] ...

随机推荐

  1. KVM总结-KVM性能优化之CPU优化

    前言 任何平台根据场景的不同,都有相应的优化.不一样的硬件环境.网络环境,同样的一个平台,它跑出的效果也肯定不一样.就好比一辆法拉利,在高速公路里跑跟乡村街道跑,速度和激情肯定不同… 所以,我们做运维 ...

  2. SVN上拖下来的项目,缺少build path怎么办?

    在eclipse里用subeclipe从svn上拖下来的项目,看不见java build path怎么办? 原因那是因为你的两个配置文件:.project .classpath没有内容或者缺失. 重新 ...

  3. oracle提高查询效率的34个方面全解析

    oracle提高查询效率的34个方面全解析   在一个数据库中进行操作的时候,效率是很重要的,那么,如何提高oracle的查询效率呢?笔者将从以下几个方面进行详细解析: 1.选择最有效率的表名顺序(只 ...

  4. .NET MVC 保存Session值,6位数验证码

    //6位数验证码: Random rm = new Random(); , ).ToString(); //MVC控制器Action中 保存session值 System.Web.HttpContex ...

  5. C# .NET 配置404,500等错误信息

    <customErrors mode="On" defaultRedirect="viewAll.html"><!--所有的错误显示页--&g ...

  6. CentOS7离线安装TIDB

    首先准备一台能够联网,并且操作系统版本与正式版本完全一致的服务器. 安装思路是,通过在线方式获得所有离线安装包,然后导入到正式安装环境中去. yum install -y --downloadonly ...

  7. oracle insert 返回ID

    create or replace procedure getid(v_id out number)as  v_sql varchar2(500); begin v_sql:='insert into ...

  8. ELK测试安装

    https://blog.csdn.net/guyan0319/article/details/78749639 https://www.cnblogs.com/frankdeng/p/9139035 ...

  9. 1. SpringBoot启动后,报异常:This application has no explicit mapping for /error, so you are seeing this as a fallback.

    出现这个异常说明了跳转页面的url无对应的值. 原因1: Application启动类的位置不对.要将Application类放在最外侧,即包含所有子包 原因:spring-boot会自动加载启动类所 ...

  10. python的type class

    在python中,用户定义的class是一个PyTypeObject ( XXX_Type)对象. #PyType_Type是一切类的基类,这是一个全局数据PyTypeObject PyType_Ty ...