赞
踩
给定一个长度为 nn 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。
第一行包含整数 nn。
第二行包含 nn 个整数(均在 0∼1050∼105 范围内),表示整数序列。
共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。
1≤n≤1051≤n≤105
- 5
- 1 2 2 3 5
3
- # include <iostream>
- using namespace std;
-
- const int N = 100010;
- int a[N], s[N];
-
- int main()
- {
- int n, r = 0;
- cin >> n;
-
- for (int i = 0, j = 0; i < n; ++ i)
- {
- cin >> a[i];
- ++ s[a[i]];
- while (s[a[i]] > 1) -- s[a[j++]]; // 先减次数后右移
- r = max(r, i - j + 1) ;
- }
- cout << r;
-
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。