最近的一对
解题思路
m a p map map 存储每个数上次出现的位置。
code
#include<iostream>
#include<cstdio>
#include<map>
using namespace std;
int n,l,r=0x3f3f3f3f,ans;
map<int,int> a;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
int t;
scanf("%d",&t);
if(a[t]&&i-a[t]<r-l)
l=a[t],r=i,ans=t;
a[t]=i;
}
if(ans)
printf("%d\n",ans);
else
printf("No\n");
}