include[HTML_REMOVED]
using namespace std;
const int N = 100010;
int a[N],s[N];//定义两个数组,一个用来存储序列,一个用来存储每个数字出现的次数
int main()
{
int n,r = 0;//n为数组长度,r用来存储最长不重复子序列的长度
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++]];//当出现次数大于两次时,设此时为k位置,将k前面几次的数字次数归零,此时逐步移动到k的位置
r = max(r, i-j+1);//去最大值,但是当序列为1,2,2时,此时仍然保留最大值也就是r的最大值为2;这样就可以保证输出的是最长的子序列
}
cout << r;
return 0;
}