给定一个长度为n的整数序列,请找出最长的不包含重复数字的连续区间,输出它的长度。
运用双指针
#include<iostream>
#include<iostream>
#include<iostream>
using namespace std
;
const int N
=1e6+5;
int n
;
int a
[N
],s
[N
];
int main()
{
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
]]--;
j
++;
}
res
=max(res
,i
-j
+1);
}
cout
<<res
<<endl
;
return 0;
}
转载请注明原文地址: https://lol.8miu.com/read-25958.html