#P1007. 7unar的采样实验

7unar的采样实验

背景

7unar在电子音乐课上玩合成器,录下了一段很长的音符序列。老师要求他从中截取一段最长且所有音符互不重复的连续片段作为采样素材。

"暴力枚举所有区间?O(n2)O(n^2) 肯定要爆……有没有更优雅的方法?"

描述

给定一个长度为 nn 的整数序列 a1,a2,,ana_1, a_2, \dots, a_n,每个 aia_i 代表一个音符的编号。

请找出最长的连续子数组,使得其中所有元素互不相同,并输出其长度。

输入格式

第一行一个整数 nn

第二行 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n

输出格式

一行一个整数,表示最长无重复元素的连续子数组的长度。

样例

5
1 2 3 2 1
3
6
1 1 1 1 1 1
1

限制

1n1051 \le n \le 10^50ai1060 \le a_i \le 10^6

对于 30%30\% 的数据,n1000n \le 1000

提示:试试用两个指针维护一个"滑动窗口",右指针扩展窗口,左指针在遇到重复时收缩。每个元素最多被左右指针各访问一次,时间复杂度 O(n)O(n)