题解:AT_abc395_c [ABC395C] Shortest Duplicate Subarray
Lovely_yhb · · 题解
题意
求出序列中相隔最近的两个相同数字的距离。
思路
发现值域非常小,
开一个数组
AC Code
#include<bits/stdc++.h>
using namespace std;
int lst[1000006],n,x,ans=0x3f3f3f3f;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
if(lst[x]) ans=min(ans,i-lst[x]+1);
lst[x]=i;
}
cout<<(ans==0x3f3f3f3f?-1:ans);
return 0;
}