一排奶牛
求只包含两个数的区间里的最大值
#include<iostream>
using namespace std;
const int N = 1e6 + 10;
int a[N];
int cnt[N];
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; i ++)
{
cin >> a[i];
}
int num = 0;
int ans = 0, x = 1;
for(int i = 1; i <= n; i ++)
{
if(!cnt[a[i]])num ++;
cnt[a[i]] ++;
while(num > 2)
{
cnt[a[x]] --;
if(!cnt[a[x]])num --;
x ++;
}
ans = max(ans, cnt[a[i]]);
}
cout << ans <<endl;
return 0;
}