首页 > 其他 > 详细

799. 最长连续不重复子序列

时间:2019-11-22 01:24:30      阅读:131      评论:0      收藏:0      [点我收藏+]

给定一个长度为n的整数序列,请找出最长的不包含重复数字的连续区间,输出它的长度。

输入格式

第一行包含整数n。

第二行包含n个整数(均在0~100000范围内),表示整数序列。

输出格式

共一行,包含一个整数,表示最长的不包含重复数字的连续子序列的长度。

数据范围

1n1000001≤n≤100000

输入样例:

5
1 2 2 3 5

输出样例:

3

#include<iostream>
#include<algorithm>
using namespace std;

const int N = 1e5+ 10;

int a[N],s[N];

int main(){
    int n;
    cin >> n;
    for(int i = 0;i < n;i++) cin >> a[i];
    
    int res = 0;
    for(int i = 0,j= 0;i< n;i++){
        s[a[i]] ++;
        while(s[a[i]] > 1){
            s[a[j++]] --;//减到s[a[i]] 小于一
        }
        res = max(res,i - j + 1);
    }
    cout << res;
}

  

799. 最长连续不重复子序列

原文:https://www.cnblogs.com/luyuan-chen/p/11909280.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!